Repository navigation
Releases: lebedev-nikita/boxdb
Release list
BoxDB 0.6.0
Extended SQLite client with typed columns, ordinary SQLite binary files, and Git-friendly YAML stream storage. Use original Litestream for replication. Experimental.
BoxDB 0.5.1
Adds Linux ARM64 support for Raspberry Pi running 64-bit Raspberry Pi OS Bookworm or newer (glibc 2.35+).
- Native CLI archive:
boxdb-0.5.1-aarch64-unknown-linux-gnu.tar.gz. - Go native library:
boxdb-go-0.5.1-linux-arm64.tar.gz. - The npm CLI and client include Linux ARM64 binaries and work in Node.js and Bun.
- Rust, TypeScript, Go and installed-package CI now run on Linux ARM64.
All Rust crates and npm packages are version 0.5.1. Install the CLI with npm install -g @boxdb/cli@0.5.1, or add the client with npm install @boxdb/client@0.5.1.
BoxDB 0.5.0
Adds native TIME values for a time of day without a date or time zone.
- SQL
TIME, RustType::Time/Value::Time, Goboxdb.Time, and Drizzletime(). - Optional fractional seconds on input; canonical output uses microsecond precision.
- Typed arrays, indexes, defaults, generated columns, and SQLite/YAML conversion preserve TIME values.
Experimental release; APIs and storage contracts may change before 1.0.
BoxDB 0.4.3
Readable YAML storage now omits columns containing SQL NULL. Missing columns restore as SQL NULL even when the column has a DEFAULT, and all-NULL rows remain present as values: {}. JSON documents retain their contents unchanged.
This release also requires explicit column types in SQL table declarations and documents BoxDB SQL differences.
Includes CLI binaries for macOS ARM64 and Linux x64, native Go libraries, and Rust source archives. npm packages and Rust crates are released as version 0.4.3.
BoxDB 0.4.2
Extended SQLite client with typed columns, ordinary SQLite binary files, and Git-friendly YAML stream storage. Use original Litestream for replication. Experimental.
BoxDB 0.4.1
Fix concurrent binary writes using stale logical-type validators after another client commits a schema change.
- Refresh schema metadata and validators within the transaction that owns the binary writer.
- Reuse validators while the schema is unchanged, reducing overhead for batched writes.
- Clean up internal transactions on cancellation while preserving SQLite conflict and deferred-constraint behavior.
- Protect cancellation cleanup and preserve metadata snapshots held by active read cursors.
- Add deterministic concurrency regressions and a multiprocess performance benchmark.
Includes the Rust crates, npm client/CLI/adapters, CLI binaries and native Go libraries. The Go module version is github.com/lebedev-nikita/boxdb/packages/go@v0.4.1.
BoxDB 0.4.0
BoxDB 0.4.0 adds database diagnostics, explicit recovery, and structured failure state across Rust, TypeScript, Go and the CLI.
New capabilities
- Check existing binary SQLite and readable YAML files with
boxdb check --quickor--full, including structured JSON reports, type validation, foreign keys and available error locations. - Rebuild indexes into a new database with
boxdb repair --rebuild-indexes. - Salvage available SQLite or YAML data with
boxdb recover. Binary recovery uses BoxDB's native codec and bundled functions; rejected YAML fragments are preserved separately. - Inspect operation outcome, transaction state, connection usability and cleanup failures. Connections are invalidated after physical corruption, and Go discards them from its pool.
- Use the same file-maintenance operations from Rust, TypeScript and Go.
Recovery always reports possible data loss and never replaces the source or an existing destination. Ordinary database opening keeps its create-if-missing behavior. Replication and backup remain with Litestream.
The documentation and BoxDB agent skill include the new workflows. CLI release archives include the recovery and error-handling guides.
See diagnostics and recovery and client error contracts.
Distribution
This release includes CLI binaries for macOS ARM64 and Linux x64, native Go libraries, Cargo source archives, and five npm packages. Go modules and native libraries must use the same version.
Experimental version 0: APIs and storage contracts may change.
BoxDB 0.3.2
Extended SQLite client with typed columns, ordinary SQLite binary files, and Git-friendly YAML stream storage. Use original Litestream for replication. Experimental.
BoxDB 0.1.0
BoxDB 0.1.0 is the first experimental release of an embedded Rust SQL database for small single-server applications and Git-tracked data.
Features
- Strict typed tables by default, including exact decimals, booleans, UUIDs, JSON, temporal values, and arrays.
- A Rust SQL executor and public library API with typed parameters, constraints, transactions, and savepoints.
- Custom binary storage and deterministic readable JSON Lines for Git diffs, with format conversion.
- Built-in CLI commands for incremental S3 snapshot replication and verified restore.
- The CLI and Rust crate are named
boxdb. Previous pre-release binary snapshots remain readable; new writes use the BoxDB header.
Install
Download and extract the CLI archive for your platform, or build from the tagged source:
cargo install --git https://github.com/lebedev-nikita/boxdb --tag v0.1.0 --locked
boxdb --version
boxdb data.jsonl --format readable -e "CREATE TABLE notes(id INTEGER PRIMARY KEY,body TEXT); INSERT INTO notes(body) VALUES('Hello'); SELECT * FROM notes;"CLI archives are provided for static Linux x86-64 (musl) and macOS ARM64. The .crate asset contains the Rust source package; SHA256SUMS covers the downloadable assets. See the README and S3 setup guide.
Validation and scope
Formatting, Clippy, all 57 Rust integration/documentation tests, and 287 adapted original SQLite cases pass. Linux CI and both packaged CLI smoke checks pass; the source package also builds through cargo package verification.
This is an experimental SQL subset, not a production SQLite replacement. The complete database lives in memory, connections hold an exclusive file lock, and commits rewrite snapshots. The full SQLite test suite has not been ported. S3 replication archives observed committed snapshots and may coalesce intermediate commits; it is independent of Litestream WAL/LTX backups. Live AWS operation remains unverified.