librius 0.1.1

A personal library manager CLI written in Rust.
Documentation

๐Ÿ“š Librius

Build Status Docs.rs License: MIT Rust Edition

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.


๐Ÿ“ฆ Installation

๐Ÿง AUR (Arch Linux)

AUR

yay -S librius
# or
paru -S librius

๐Ÿบ Homebrew (macOS/Linux)

Homebrew Version

brew tap umpire274/tap
brew install librius

๐Ÿฆ€ Crates.io (Rust)

Crates.io

cargo install rtimelogger

โš™๏ธ Features

Status Feature Description
โœ… 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

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

git clone https://github.com/umpire274/librius.git
cd librius

2๏ธโƒฃ Build and run

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:

db_path = "/home/alessandro/.config/librius/librius.db"

๐Ÿ“š Documentation

The API and user-facing documentation for Librius is available on docs.rs:

To generate and view the documentation locally run:

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

cargo run -- list

Run with logging (future)

RUST_LOG=debug cargo run -- add "Neuromancer"

Format and lint

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


๐Ÿ“œ 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!