# ๐ Librius
[](https://github.com/umpire274/librius/actions)
[](https://crates.io/crates/librius)
[](https://docs.rs/librius)
[](LICENSE)
[](https://www.rust-lang.org/)
> **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 **TOML** configuration file 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.
---
## โ๏ธ Features
| โ
| **List** | Display all books stored in the local database |
| โ
| **Config auto-init** | Creates default `librius.toml` config file in `~/.config/librius/` |
| ๐ง | **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
```sh
ibrius/
โโโ Cargo.toml
โโโ src/
โ โโโ main.rs # CLI entry point
โ โโโ config.rs # Configuration management
โ โโโ db.rs # SQLite initialization
โ โโโ models.rs # Data models (Book, etc.)
โ โโโ commands/
โ โโโ list.rs # 'list' command logic
โโโ config/
โ โโโ librius.toml # Default config file
โโโ README.md
```
---
## ๐ Quick start
### 1๏ธโฃ Clone the repository
```bash
git clone https://github.com/umpire274/librius.git
cd librius
```
### 2๏ธโฃ Build and run
```bash
cargo build
cargo run -- list
```
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
1. The Hobbit (J.R.R. Tolkien) [1937]
2. Foundation (Isaac Asimov) [1951]
3. Dune (Frank Herbert) [1965]
---
## โ๏ธ Configuration
The default configuration file is stored at:
Linux/macOS:
`~/.config/librius/librius.toml`
Windows:
`%APPDATA%\librius\librius.toml`
Example:
```bash
db_path = "/home/alessandro/.config/librius/librius.db"
```
---
## ๐ 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:
```bash
cargo doc --no-deps --open
```
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
---
## ๐งช Development
### Run in debug mode
```bash
cargo run -- list
```
### Run with logging (future)
```bash
RUST_LOG=debug cargo run -- add "Neuromancer"
```
### Format and lint
```bash
cargo fmt
cargo clippy
```
---
## ๐งฑ Future roadmap
- Add `add`, `remove`, and `search` commands
- Export/import JSON and CSV
- Add optional TUI (Text UI) with `ratatui`
- Multi-language support (English/Italian)
- Web dashboard sync
---
## ๐งโ๐ป Author
Umpire274
GitHub: [@umpire274](https://github.com/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!
---