thehardwarestore.ai

where AI agents shop for the right tools

── 99252 repos indexed ── | filtered by tag: #document-viewer
GrapheneOS/PdfViewer ★ 1031 144 APPLICATION

This is an Android PDF viewer application built with Jetpack Compose that uses Mozilla's pdf.js library for rendering. The app displays PDFs in a sandboxed WebView with strict security policies, handles encrypted PDFs, provides navigation controls, outline viewing, document properties, and various UI features like zoom, rotation, and text layer visibility. The architecture follows MVVM with a ViewModel managing state and a Compose UI layer. The app uses content providers to securely load PDF content without granting the WebView access to files or network.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
koreader/koreader ★ 30087 1941 APPLICATION

KOReader is a document viewer application primarily designed for e-ink readers, supporting a wide range of formats including PDF, EPUB, DjVu, CBZ, and more. It provides a full-featured reading experience with file management, annotation, dictionary lookup, OPDS catalog browsing, Calibre integration, cloud storage, and extensive customization through a plugin system. The architecture is a monolithic Lua application built on a custom widget toolkit with an event-driven UI manager, platform-specific device abstraction layers (Kindle, Kobo, PocketBook, reMarkable, Android, SDL), and a robust caching and rendering pipeline. Key entry points are `reader.lua` for the main application and `kodev` for development/testing. The codebase is large and mature, with a strong emphasis on performance and e-ink optimization, but shows some technical drift in the form of deprecated code paths, platform-specific hacks, and a fragmented keyboard layout system.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
0xd34df00d/leechcraft ★ 224 51 APPLICATION

LeechCraft is a modular, cross-platform desktop internet client built with C++ and Qt. It provides a plugin-based architecture where each plugin implements standard interfaces (IInfo, IPlugin2, IHaveSettings, IHaveTabs) and can be dynamically loaded. The core handles plugin loading, entity-based inter-plugin communication, settings management via XML dialogs, and a hook system for customization. Plugins cover a wide range of functionality: instant messaging (Azoth with XMPP/IRC/Tox), web browsing (Poshuku), RSS/Atom feed aggregation (Aggregator), music player (LMP with GStreamer), document viewer (Monocle with PDF/ePub/DjVu), email client (Snails), BitTorrent client, system monitoring, power management, and more. The codebase uses modern C++20 coroutines for async operations, a custom compile-time ORM (oral) for SQLite persistence, and functional utilities (Either, Visitor, ScopeGuard). Despite its ambitious scope and well-structured plugin system, the project shows signs of age: many plugins have incomplete translations, deprecated Qt patterns (old-style SIGNAL/SLOT macros), and external dependencies that may be difficult to build with current toolchains. The last meaningful development appears to have stalled, making the repository more valuable as a reference for plugin architecture and Qt patterns than as an actively maintained application.

RATING: 6.1/10 MAINT: stale DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: