DaruDB
An embedded database that keeps an application's data in one local file, with one engine written in Rust and a Node.js binding over it. It is in early development and nothing is published yet, so for now it is built from source.
About this project
DaruDB is a database that runs inside an application rather than beside it. There is no server to install or start: a program opens a file, reads and writes objects in it, and closes it, which makes it the kind of store a desktop app, a mobile app or a command-line tool keeps its own data in. The engine is written once, in Rust, and other languages reach it through thin bindings that add no behaviour of their own, so a file written from Node.js reads the same from Rust.
Data is declared as a schema of collections and read back with queries built in code or written as text, with indexes, links between objects, and migrations from one schema version to the next. Results are plain objects rather than handles tied to the open database. A file can be encrypted and authenticated page by page with a key or a password, several processes share one file through the operating system's file locks alone, and a committed page is never overwritten in place, so a crash leaves the last committed state intact. An integrity check, online backup, compaction and salvage of a damaged file come with the library.
DaruDB is in early development. The Rust crate and the Node.js package are built from source rather than installed, the file format may still change without a migration path until the first release, and a Dart package is planned. Speed, durability and platform coverage are the goals the design is built around, and each becomes a claim once the benchmark or test suite behind it is in the repository. The documentation site covers the guides, the engine and the API in English and Korean.
Features
Documentation site
TypeScript types
Multiple languages
Verified by tests
