Download BXM
Each archive holds both tools, bxm-canon and bxm-memo, plus the Canon library and C header, the format spec with its test vectors, and the license files. The links always point to the latest release.
| System | Download |
|---|---|
| Linux, x86-64 | bxm-linux-amd64.tar.gz |
| Linux, ARM64 | bxm-linux-arm64.tar.gz |
| macOS, Apple silicon | bxm-darwin-arm64.tar.gz |
| macOS, Intel | bxm-darwin-amd64.tar.gz |
| Windows, x86-64 | bxm-windows-amd64.zip |
To check a download, compare it with SHA256SUMS.
Canon for JavaScript
The bxm-canon package for Node 18+ and browsers is attached to every release:
npm install https://github.com/softdevstudio/bxm/releases/latest/download/bxm-canon-js.tgz
It holds the Canon core compiled to WebAssembly, with an ES module, a CommonJS build and TypeScript types. How to use it.
Canon for Python
Wheels for Python 3.9 and later, on Linux x86-64 and ARM64, macOS (Apple silicon and Intel) and Windows x86-64, are attached to every release. pip picks the right one:
pip install bxm-canon --find-links https://github.com/softdevstudio/bxm/releases/expanded_assets/v0.3.0
Install
Unpack the archive and put the two binaries somewhere on your PATH:
tar xzf bxm-linux-amd64.tar.gz
sudo cp bxm-linux-amd64/bxm-canon bxm-linux-amd64/bxm-memo /usr/local/bin/
bxm-canon version
bxm-memo version
On macOS the first run of a downloaded binary may be blocked by Gatekeeper. Allow it under System Settings, Privacy & Security, or remove the quarantine flag with xattr -d com.apple.quarantine bxm-canon bxm-memo.
What’s in the Archive
| File | What it is |
|---|---|
bxm-canon |
The Canon command: encode, decode, check, hash, diff, fmt |
bxm-memo |
The Memo command: run, explain, list, gc, clear |
lib/ |
The Canon library, static and shared, for linking from C or another language |
include/bxm_canon.h |
The C header |
spec/ |
The Canon format spec and its conformance vectors |
LICENSE, NOTICE, THIRD_PARTY_LICENSES.md |
The license files |
Build From Source
You need Rust (stable) for Canon and Go 1.22 or later for Memo.
git clone https://github.com/softdevstudio/bxm
cd bxm/canon && cargo build --release # target/release/bxm-canon
cd ../memo && go build ./cmd/bxm-memo # ./bxm-memo
The Rust crate builds the static and shared libraries too. Older releases and their notes are on the releases page.