Rust clients for managing a game library through the RomM API. This repository is a Cargo workspace with a shared API library and two frontends: a scriptable CLI and an interactive TUI.
| Crate | Guide | crates.io / docs.rs |
|---|---|---|
romm-api |
API & configuration | crates.io · docs.rs |
romm-cli |
CLI commands & scripting | crates.io · docs.rs |
romm-tui |
Terminal UI | crates.io · docs.rs |
- Releases — per-crate versioning, tags, and maintainer runbook
- Architecture — workspace layout, layers, TUI state machine
- HTTP client —
RommClient, endpoints, streaming downloads - Save sync — manifest format,
syncsubcommands - Post-upload library scan —
--scan,scan --wait, cache - JSON output —
--jsonfield reference - Troubleshooting authentication — keyring, Docker, CI, Windows
CLI (scripting and automation):
cargo install romm-cli
romm-cli init
romm-cli platformsTUI (interactive browsing):
cargo install romm-tui
romm-tuiLibrary (embed romm-api in your own Rust project):
[dependencies]
romm-api = "1.0"See docs/api.md for a minimal RommClient example.
Prebuilt binaries: GitHub Releases (romm-cli-v* ships the CLI; romm-tui-v* ships the TUI). See docs/releases.md.
| Crate | Role | Highlights |
|---|---|---|
| romm-api | Shared library | RommClient, config, caching, downloads, save sync, typed errors |
| romm-cli | Scripting CLI | Resource–action commands, --json, shell completions, auth, sync, self-update |
| romm-tui | Terminal UI | Library browse, search, game detail with covers, background downloads, theming |
Each crate has its own changelog and release tags. User-facing features, screenshots, and release notes live on the matching crate page—not duplicated here.
romm-cli/ # workspace root (this repo)
├── romm-api/ # RommClient, endpoints, core, config, errors
├── romm-cli/ # commands, CLI binary, shell completions
└── romm-tui/ # TUI screens, event loop, romm-tui binary
- New embedders: depend on
romm-apidirectly. - Existing library consumers:
romm-clire-exportsromm_apifor backward compatibility.
Issues and pull requests are welcome. See CONTRIBUTING.md for build steps, required checks, and commit conventions.
Contributor deep-dive: rust-guidelines.md.
This project is licensed under the MIT License.
Creation assisted with AI; content reviewed by the maintainers.