Repository navigation
Installation
croma ships as four crates from one workspace, all versioned in lockstep at 1.0.1 under Apache-2.0. Pick the route that fits your use:
-
Just want the
cromacommand? → crates.io or a prebuilt binary. -
Embedding ABC ↔ MusicXML in a Rust app? →
cargo add croma-core, then see Library-Usage. -
Wiring up an editor? → install
croma-lspand see Editors-and-Zed.
cargo install croma-cli # the `croma` CLI
cargo install croma-lsp # the stdio language server
cargo add croma-core # the library (ABC <-> MusicXML, zero-dependency)cargo install croma-cli builds the binary named croma (not
croma-cli). The CLI's default build includes the MusicXML reader; for a
reader-less, zero-dependency CLI see below.
Each GitHub Release attaches two
uncompressed binaries per platform — croma-* (the CLI) and croma-lsp-*
(the language server). Download the one matching your platform, mark it
executable, and put it on your PATH.
| Platform | Rust target | CLI asset | Language-server asset |
|---|---|---|---|
| macOS arm64 | aarch64-apple-darwin |
croma-macos-aarch64 |
croma-lsp-macos-aarch64 |
| macOS x86_64 | x86_64-apple-darwin |
croma-macos-x86_64 |
croma-lsp-macos-x86_64 |
| Linux x86_64 | x86_64-unknown-linux-gnu |
croma-linux-x86_64 |
croma-lsp-linux-x86_64 |
| Linux arm64 | aarch64-unknown-linux-gnu |
croma-linux-aarch64 |
croma-lsp-linux-aarch64 |
| Windows x86_64 | x86_64-pc-windows-msvc |
croma-windows-x86_64.exe |
croma-lsp-windows-x86_64.exe |
Notes:
- OS labels are
macos/linux/windows; arch labels areaarch64/x86_64. Only Windows carries the.exesuffix. Linux arm64 ships under theaarch64name, notlinux-arm64. - The assets are bare, uncompressed executables — there is no archive to unpack.
- The
croma-lsp-*names are a pinned contract: the Zed extension's resolver computes exactly these to auto-download the server. Full detail:docs/releasing.md.
croma pins Rust 1.96.0 via
rust-toolchain.toml,
so a plain cargo / rustc selects the right toolchain on any host (edition
2024).
git clone https://github.com/ro-ag/croma
cd croma
cargo build --release # target/release/croma (CLI) + croma-lspThe default build's default-members are croma-core, croma-cli, and
croma-lsp, so cargo build produces both the croma CLI and the croma-lsp
server.
The MusicXML reader's only dependency (roxmltree) is opt-in. Build a CLI
without it — and without croma read / croma musicxml2abc — with:
cargo build -p croma-cli --no-default-featuresThis is the same zero-dependency surface the croma-core library ships by
default; see Library-Usage for the library side.
croma --version # croma 1.0.1
croma --helpNext: CLI-Usage.
croma — licensed under Apache-2.0.
Commercial use is allowed but must retain the attribution in
NOTICE (license §4); provided
as-is, without warranty or liability (§7–8).
Repository · crates.io · docs.rs · Issues · docs/
Start here
Use it
Capabilities
Why trust it
Help