Repository navigation
Releases
Bionic Reader v0.3.0
Go application package
This release adds the Go module alongside the existing Rust, Python, JavaScript, and React APIs. Install it into your application with Go 1.25 or newer:
go get github.com/arturoaviles/bionic-readerThe Go package embeds the shared Rust engine as WebAssembly and runs through wazero. Consumers need no CGO, Rust compiler, separate CLI, or runtime downloads.
- Render HTML, Markdown, ANSI, and plain text.
- Obtain ordered text segments for custom presentation.
- Select profiles, word-length rules, frequency, and emphasis styles.
- Parse explicitly supplied TOML preferences.
- Reuse a closable reader with concurrent calls and context cancellation.
- Handle typed validation, initialization, engine, and closed-reader errors.
See the Go examples and application library guide. This release also adds the requested Python, Rust, and JavaScript example guides linked from README.md.
Compatibility and verification
Existing CLI commands and Rust/Python/JavaScript/React behavior remain covered by the shared conformance fixtures. Existing runtime minimums are unchanged; Go requires 1.25 or newer.
The Go package passes cross-platform tests on Linux, macOS, and Windows, including minimum-Go, race, cancellation, and invalid-input cases. The embedded engine is reproduced from locked Rust 1.85.1 source in a digest-pinned canonical Linux container and attested by main CI. Release preparation binds the engine bytes to the exact tagged source before promotion.
Publication verified: the public Go proxy and pkg.go.dev now serve 0.3.0. A fresh unversioned go get github.com/arturoaviles/bionic-reader selected 0.3.0; its consumer and all 45 package tests passed with CGO disabled. PyPI and npm serve 0.3.0 with all six wheel and seven tarball digests matching this release. The crates.io checksum matches the original tested Cargo candidate, and Homebrew is updated. The registry publication workflow completed successfully.
What's Changed
- Fix crates.io trusted publication by @arturoaviles in #23
- Add Go package and verified module publication by @arturoaviles in #24
Full Changelog: v0.2.0...v0.3.0
Bionic Reader v0.2.0
Bionic Reader 0.2.0 adds application libraries sharing the CLI's Rust document engine.
Application APIs
- Rust: deterministic
reading::Readerrendering and ordered text segments, with explicit options and output formats. Existing lower-level APIs remain available. - Python: importable native
Reader,render,segments, and explicit TOML configuration APIs, packaged alongside the CLI. - JavaScript: ESM/CommonJS and browser APIs with bundled WebAssembly. Await
createReader()once, then call synchronous document methods. - React:
BionicReaderProviderandBionicTextrender literal text with styled prefixes, preserve whitespace, and support server rendering and hydration.
Multilingual segmentation, Markdown protections, safe terminal controls, and text fidelity use one shared engine. The release includes installed-package examples, TypeScript declarations, an aggregate dependency inventory, and a performance report for the shipped Wasm artifact.
Compatibility and migration
Python packages now require Python 3.11+, and npm packages require Node 22+, including installations used solely for the CLI. React supports 18.3 and 19. Rust retains its 1.85.1 minimum. Existing CLI commands remain available.
Formatted API calls require an explicit ANSI/plain/Markdown/HTML output format. The new APIs use deterministic defaults and explicit configuration; they do not discover CLI preferences or inspect terminal state. Python and JavaScript accept whole Unicode strings. Streaming/raw-byte APIs and custom segmentation remain Rust capabilities; React accepts plain text.
This is a minor release under the project's 0.x policy because it adds public APIs and raises runtime minimums. Published versions and tags remain immutable.
Installation
python -m pip install bionic-reader
npm install @arturoaviles/bionic-reader
cargo add bionic-readerRegistry publication status: npm and PyPI now serve 0.2.0, and their published artifacts match the verified release digests. Fresh installs passed the document API and retained CLI checks. Homebrew has also been updated. Crates.io now serves 0.2.0 through GitHub trusted publishing. Its crate checksum matches the original verified CI candidate, and a fresh crates.io consumer passed all 37 shared API fixtures and explicit TOML configuration.
Validation
The release is prepared from successful CI at the tagged main commit, with candidate checksums and provenance verified before promotion. The matrix includes six native macOS/Linux targets, actual Alpine wheel imports, Python 3.11–3.15, Node 22/24/26 on Linux/macOS/Windows, actual Chrome/Edge/Firefox/Safari, React 18/19 hydration, and retained CLI/package-manager checks.
See README.md, docs/LIBRARY.md, and CHANGELOG.md in the tagged source for API usage and migration details. Native Windows CLI/Python distribution remains outside the target matrix.
What's Changed
- Fix generated Homebrew formula audit failures by @arturoaviles in #10
- Document Homebrew tap, trust, and install steps by @arturoaviles in #9
- Add Rust, Python, JavaScript, and React library APIs by @arturoaviles in #22
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- Implement Rust bionic-reader CLI, reading sessions, and package candidates by @arturoaviles in #2
- Close CI gate job ID gap and record assurance rollout by @arturoaviles in #7
- fix: preserve Unicode chunk boundaries and upgrade mypy by @dependabot[bot] in #6
- build(deps): bump toml from 0.9.12+spec-1.1.0 to 1.1.8+spec-1.1.0 by @dependabot[bot] in #3
- build(deps): bump signal-hook from 0.3.18 to 0.4.5 by @dependabot[bot] in #4
- build(deps): bump the patch-and-minor group across 2 directories with 4 updates by @dependabot[bot] in #5
- Streamline README and add native package release publishing by @arturoaviles in #8
New Contributors
- @arturoaviles made their first contribution in #2
- @dependabot[bot] made their first contribution in #6
Full Changelog: https://github.com/arturoaviles/bionic-reader/commits/v0.1.0