A next-generation digital library server for comics, manga, and ebooks built in Rust. Designed to scale horizontally while remaining simple for homelab deployments.
Note: Codex is under active development. Architecture and APIs may still change as the project matures. There is a sizable backlog of planned work, so responses to feature requests may be slow. Bug reports are always welcome.
- Dual database support: SQLite for simple setups, PostgreSQL for production
- Horizontal scaling: Stateless architecture for Kubernetes deployments
- Multiple formats: CBZ, CBR, EPUB, PDF support
- Fast metadata extraction: ComicInfo.xml parsing, page info, and file hashes
- Flexible organization: Per-library scanning strategies
Build the project:
cargo build --releaseStart the server:
codex serve --config codex.yamlSee config/config.sqlite.yaml for configuration options.
After cloning, install pre-commit hooks to ensure OpenAPI files stay in sync:
make setup-hooksThis requires Python and will install pre-commit if not already installed.
CBR (Comic Book RAR) archive support requires the UnRAR library, which uses a proprietary license (not standard open source). The UnRAR license allows free use for extraction but prohibits creating RAR compression software.
By default, Codex includes CBR support:
cargo build --releaseIf you don't want proprietary dependencies, build without the rar feature:
cargo build --release --no-default-featuresThis removes the UnRAR dependency and disables CBR parsing. All other formats (CBZ, EPUB, PDF) will continue to work normally.
# Test with CBR support (default)
cargo test
# Test without CBR support
cargo test --no-default-features
# Test CBR parser specifically (requires manual test files)
cargo test --features rar cbr_parserFor more details, see the UnRAR license.
This project is licensed under the GNU Affero General Public License v3.0.
For commercial licensing options, contact @AshDevFr.