Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install

aozora ships in five shapes — pick the one that matches how you want to consume the parser.

CLI binary (release archive)

Pre-built aozora binaries for the three Tier-1 platforms ride on every GitHub Release:

  • aozora-vX.Y.Z-x86_64-unknown-linux-gnu.tar.gz
  • aozora-vX.Y.Z-aarch64-apple-darwin.tar.gz
  • aozora-vX.Y.Z-x86_64-pc-windows-msvc.zip

Each archive is shipped with a SHA256SUMS companion. Browse them at https://github.com/P4suta/aozora/releases.

curl -L -O \
  https://github.com/P4suta/aozora/releases/latest/download/aozora-x86_64-unknown-linux-gnu.tar.gz
tar -xzf aozora-*.tar.gz
sudo install -m 0755 aozora /usr/local/bin/
aozora --version

CLI binary (build from source)

The released CLI is on crates.io — cargo install compiles it from the published source:

cargo install aozora-cli --locked

The --locked flag is non-negotiable — it pins to the exact Cargo.lock we shipped, which matters because the workspace uses fat LTO (mismatched dep versions silently change inlining behaviour).

To track the development tip instead, install from git:

cargo install --git https://github.com/P4suta/aozora --locked aozora-cli

Or pin a specific release tag (the current value is on the releases page):

cargo install --git https://github.com/P4suta/aozora \
              --tag v0.4.1 --locked aozora-cli

Rust library

aozora is on crates.io. Depend on the umbrella crate alone — it is the single front door, and the build-block crates (aozora-encoding, …) are reached through its re-exports (aozora::encoding, …):

[dependencies]
aozora = "0.4"

Bleeding-edge alternative — to track unreleased fixes on main, pin a git tag instead. This block is the single source of truth for the recommended git pin — every other doc links here, so a new release only needs this one tag updated:

[dependencies]
aozora = { git = "https://github.com/P4suta/aozora.git", tag = "v0.4.1" }

The current tag is whatever GitHub Releases is marked Latest. Either way the repo follows Conventional Commits and SemVer: breaking changes advance the major version (post-1.0) or the minor version (during 0.x), so a "0.4" requirement stays safe.

WASM (browser / Node)

The browser package is on npm as aozora-wasm:

npm install aozora-wasm

To build it from a checkout instead:

rustup target add wasm32-unknown-unknown        # one-time
wasm-pack build --target web --release crates/aozora-wasm

The post-wasm-opt artifact has a 500 KiB size budget. See Bindings → WASM for the JS surface and the post-build wasm-opt invocation we recommend.

C ABI

cargo build --release -p aozora-ffi
# → target/release/libaozora_ffi.{so,dylib,a}
# → target/release/aozora.h          (cbindgen-generated)

Link with -laozora_ffi and include aozora.h. See Bindings → C ABI for the API surface and memory ownership rules.

Python

The wheel is on PyPI as aozora_py:

pip install aozora_py

For local development against a checkout, build with maturin instead:

pip install maturin                              # one-time
cd crates/aozora-py
maturin develop -F extension-module              # install in current venv
maturin build   -F extension-module --release    # produce a redistributable wheel

See Bindings → Python for the API and the unsendable thread-safety contract.

Toolchain pin

aozora pins Rust 1.95.0 as its MSRV (rust-toolchain.toml). CI enforces it via a dedicated msrv job. If you run rustup show inside the repo and see something else, your local override needs updating.