{"id":45533380,"url":"https://github.com/claritas-rs/claritas","last_synced_at":"2026-04-18T04:05:40.240Z","repository":{"id":339751858,"uuid":"1155930287","full_name":"claritas-rs/claritas","owner":"claritas-rs","description":"A minimal, keyboard-friendly EPUB reader for the desktop built with Rust and Dioxus.","archived":false,"fork":false,"pushed_at":"2026-03-02T18:18:52.000Z","size":741,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-02T21:59:27.433Z","etag":null,"topics":["desktop-app","dioxus","ebook","epub","gui","linux","reader","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claritas-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-12T04:09:54.000Z","updated_at":"2026-03-02T18:18:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/claritas-rs/claritas","commit_stats":null,"previous_names":["claritas-rs/claritas"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/claritas-rs/claritas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claritas-rs%2Fclaritas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claritas-rs%2Fclaritas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claritas-rs%2Fclaritas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claritas-rs%2Fclaritas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claritas-rs","download_url":"https://codeload.github.com/claritas-rs/claritas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claritas-rs%2Fclaritas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30362764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-app","dioxus","ebook","epub","gui","linux","reader","rust"],"created_at":"2026-02-23T01:30:24.024Z","updated_at":"2026-04-18T04:05:40.233Z","avatar_url":"https://github.com/claritas-rs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg width=\"100%\" src=\"https://capsule-render.vercel.app/api?type=waving\u0026amp;color=222222\u0026amp;height=200\u0026amp;section=header\u0026amp;text=Claritas\u0026amp;fontSize=60\u0026amp;fontColor=fff\u0026amp;animation=twinkling\u0026amp;fontAlignY=40\u0026amp;desc=A%20minimal%20desktop%20EPUB%20and%20PDF%20reader%20built%20in%20Rust\u0026amp;descAlignY=60\u0026amp;descSize=18\"\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eA minimalist, fast and keyboard-friendly EPUB \u0026 PDF reader built entirely in Rust, running as a native desktop app via Dioxus.\u003c/i\u003e\n\u003c/p\u003e\n\n---\n\n### What's new in v1.5.2\n\n- Added **CSV import** for reading stats so users can restore exported history without losing data\n- Enhanced **CSV export** with each book's last reading position (chapter/spread or page)\n- Added per-book activity tracking and export fields for pages, chapters and finished books\n\n**Full Changelog:** https://github.com/claritas-rs/claritas/compare/v1.5.1...v1.5.2\n\n### Features\n\n\u003cdiv align=\"center\"\u003e\n\n| Feature | Description                                                                  |\n| :-----: | :--------------------------------------------------------------------------- |\n|   Auto  | Auto-scans `~/Documents/Claritas` on startup and loads all EPUB/PDF files    |\n|  Import | Import EPUB/PDF files manually or simply **drag and drop** into the library  |\n|  Search | Live search across titles and authors in the library                         |\n|  Find   | In-book text search with instant **yellow highlighting** (EPUB \u0026 PDF)        |\n|  Time   | Live **estimated reading time** for the current chapter (EPUB)               |\n|  Sort   | Organises books into **Continue Reading**, **Library** and **Read** sections |\n|  Stats  | Tracks your reading stats with **CSV import/export** + position and activity details |\n|  Save   | Persists reading progress and book status across sessions                    |\n|  Keys   | Keyboard navigation — arrow keys to flip pages / chapters                    |\n|  Cover  | Displays embedded cover images with graceful fallback                        |\n|  Theme  | Dark minimal UI with a two-page spread reader layout (EPUB \u0026 PDF)            |\n|  Core   | 100% Rust — modular zero JS runtime core for maximum performance             |\n\n\u003c/div\u003e\n\n---\n\n### Technologies\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://skillicons.dev\"\u003e\n    \u003cimg src=\"https://skillicons.dev/icons?i=rust,linux\u0026amp;theme=dark\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eDioxus • Tokio • Rayon • epub-rs • PDF.js • serde_json • base64 • image • rfd\u003c/sub\u003e\n\u003c/div\u003e\n\n---\n\n### Structure\n\n```\nClaritas/\n├── install.sh                  # One-step installer (binary + icons + .desktop)\n├── claritas_core/              # Library — EPUB parsing, progress \u0026 status persistence\n│   └── src/\n│       └── lib.rs\n└── claritas_desktop/           # Desktop app — UI built with Dioxus\n    ├── assets/\n    │   ├── icon.png            # App icon (512 × 512)\n    │   ├── claritas.desktop    # .desktop entry template\n    │   └── style.css\n    └── src/\n        ├── main.rs             # App root, sidebar, search \u0026 screen routing\n        ├── library.rs          # Library view — grid, sections, book cards, import menu\n        └── reader.rs           # Reader view — two-page spread, pagination, status bar\n```\n\n---\n\n### Getting Started\n\n#### Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/claritas-rs/claritas.git\ncd Claritas\n\n# Run in development mode\ncargo run -p claritas_desktop\n\n# Build for release\ncargo build --release -p claritas_desktop\n```\n\n\u003e **Note:** On first launch Claritas scans `~/Documents/Claritas` for EPUB/PDF files.  \n\u003e To change the default directory, update the path in `claritas_desktop/src/main.rs`.\n\n#### Benchmarks \u0026 Profiling\n\nThe project is equipped with micro-benchmarks for the Rust core and `tracing` telemetry for the Dioxus frontend. \n\n**Core Benchmarks (Criterion):**\nTo measure the performance of the EPUB engine (loading chapters, highlighting search results, splitting pagination):\n```bash\ncargo bench -p claritas_core\n```\n*Note: This requires an EPUB file located at `claritas_core/tests/fixtures/alice.epub`.*\n\n**Baseline Performance (Alice in Wonderland EPUB):**\n- **Open and parse:** ~0.73ms\n- **Extract chapter \u0026 resolve images:** ~0.87ms\n- **Calculate pagination limits:** ~0.27ms\n- **Full-text highlighting search:** ~11.0ms\n\n**Desktop Profiling (Tracing):**\nTo measure the real-world execution time of the Dioxus frontend (e.g., how long it takes to scan the library or paint the Virtual DOM), simply run the app via the terminal. The performance telemetry will be printed to standard output:\n```bash\ncargo run -p claritas_desktop\n```\n\n---\n\n### Installation (Linux)\n\nThe included `install.sh` script builds the release binary and sets up proper desktop integration — icon sizes, `.desktop` entry and a launcher in `~/.local/bin`.\n\n```bash\n# From the repository root\nbash install.sh\n```\n\nWhat the script does:\n\n| Step | Action |\n| :--: | :----- |\n| 1 | Runs `cargo build --release -p claritas_desktop` |\n| 2 | Installs the binary to `~/.local/bin/claritas_desktop` |\n| 3 | Copies the icon to `~/.local/share/icons/hicolor/\u003csize\u003ex\u003csize\u003e/apps/` for sizes 48, 64, 128 and 256 |\n| 4 | Installs `claritas.desktop` to `~/.local/share/applications/` |\n| 5 | Refreshes icon and desktop database caches |\n\nAfter installation, Claritas will appear in your application launcher and can be pinned to the taskbar.\n\n\u003e **PATH note:** If `~/.local/bin` is not in your `$PATH`, the script will remind you to add  \n\u003e `export PATH=\"$HOME/.local/bin:$PATH\"` to your `~/.bashrc` or `~/.profile`.\n\n---\n\n### Usage\n\n| Action                    | How                                                      |\n| :------------------------ | :------------------------------------------------------- |\n| Open a book               | Click the cover                                          |\n| Next / previous page      | `→` / `←` arrow keys or the on-screen arrows            |\n| Search library            | Type in the **Search** box in the sidebar                |\n| Search inside book        | Press `Ctrl+F` or click the ⌕ icon while reading         |\n| Import EPUB/PDF files     | **Drag \u0026 Drop** files, or use the **Import ▾** menu      |\n| Check reading time        | Look at the status bar at the bottom of the reader (EPUB)|\n| Export Stats as CSV       | Go to Reading Stats and click **Export CSV**             |\n| Open book menu            | Click **⋮** next to the book title                      |\n| Mark as Currently Reading | Book menu → **Mark as Currently Reading**                |\n| Mark as Read              | Book menu → **Mark as Read**                             |\n| Move back to Library      | Book menu → **Move to Library**                          |\n| Remove from library       | Book menu → **Remove from Library**                      |\n\n---\n\n### Author\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://github.com/matheussricardoo\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://skillicons.dev/icons?i=github\" alt=\"GitHub\"/\u003e\n      \u003c/a\u003e\n      \u003ca href=\"https://www.linkedin.com/in/matheus-ricardo-426452266/\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://skillicons.dev/icons?i=linkedin\" alt=\"LinkedIn\"/\u003e\n      \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cimg width=\"100%\" src=\"https://capsule-render.vercel.app/api?type=waving\u0026color=222222\u0026height=120\u0026section=footer\"/\u003e\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaritas-rs%2Fclaritas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaritas-rs%2Fclaritas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaritas-rs%2Fclaritas/lists"}