๐ Librius
Librius โ A fast, minimalist CLI to manage your personal book collection, built in Rust.
๐งพ Overview
Librius is a cross-platform command-line tool written in Rust that helps you manage your personal library.
It uses a SQLite database to store your books and a simple YAML configuration file
(librius.conf) for flexible setup.
This project aims to provide a clean, modular architecture with future extensions such as search, add/remove commands, and import/export support.
๐ฆ Installation
๐ง AUR (Arch Linux)
# or
๐บ Homebrew (macOS/Linux)
๐ฆ Crates.io (Rust)
โ๏ธ Features
| Status | Feature | Description |
|---|---|---|
| โ | List | Display all books stored in the local database |
| โ | Config management | Manage YAML config via config --print, --init, --edit, and --editor |
| โ | Database migrations | Automatic schema upgrades at startup |
| โ | Logging system | Records operations and migrations in log table |
| โ | Verbose mode | Optional --verbose flag for detailed debug output |
| ๐ง | Add / Remove | Add or delete books via CLI commands |
| ๐ง | Search | Search by title, author, or ISBN |
| ๐ง | Export / Import | Export and import data (JSON, CSV) |
๐๏ธ Architecture
๐ Quick start
1๏ธโฃ Clone the repository
2๏ธโฃ Build and run
If this is the first launch, Librius will automatically create:
- The config file at
~/.config/librius/librius.toml - A SQLite database at
~/.config/librius/librius.db
๐งฉ Example output
$ librius list
๐ Your Library
- The Hobbit (J.R.R. Tolkien) [1937]
- Foundation (Isaac Asimov) [1951]
- Dune (Frank Herbert) [1965]
โ๏ธ Configuration
# librius.conf
database: "C:/Users/YourName/AppData/Roaming/librius/librius.db"
language_default: "English"
theme: "light"
- Configuration file is automatically migrated if fields are missing or renamed.
- Default path:
- macOS/Linux โ $HOME/.librius/librius.conf
- Windows โ %APPDATA%\Roaming\librius\librius.conf
๐ Documentation
The API and user-facing documentation for Librius is available on docs.rs:
- Online: https://docs.rs/librius
To generate and view the documentation locally run:
This will build the documentation and open it in your default browser.
๐งฐ Dependencies
clap โ Command-line argument parsing rusqlite โ SQLite database serde โ Serialization/deserialization toml โ Config format support colored โ Colored terminal output
๐๏ธ Database management
Librius automatically checks and upgrades the SQLite database structure at startup.
- On first launch โ creates books table.
- On subsequent launches โ runs pending migrations silently.
- Migration results are recorded in the log table.
Example table log
|id |date| operation |target |message| |:------:|:----------------------|:----------------------------------------------------------------------------| |1 |2025-10-13T21:45:12+02:00| DB_CREATED |DB| Created new database| |2 |2025-10-13T21:45:13+02:00| DB_MIGRATION_OK| DB| Schema updated successfully|
๐ Verbose mode
Run Librius in diagnostic mode to display all internal initialization steps:
Output example:
In normal mode, only command output is displayed.
๐งช Development
Run in debug mode
Run with logging (future)
RUST_LOG=debug
Format and lint
๐งฑ Future roadmap
- Add
add,remove, andsearchcommands - Export/import JSON and CSV
- Add optional TUI (Text UI) with
ratatui - Multi-language support (English/Italian)
- Web dashboard sync
๐งโ๐ป Author
Umpire274 GitHub: @umpire274
๐ License
This project is licensed under the MIT License โ see the LICENSE
โญ Contribute
Contributions, feature requests, and ideas are welcome! If youโd like to contribute, please open a pull request or start a discussion.
๐งก Support
If you enjoy this project, please โญ star the repository โ it helps visibility and development motivation!