Struct DB 🔧🔩
Provides a drop-in, fast, and embedded database solution, focusing on maintaining coherence between Rust types and stored data with minimal boilerplate. It supports multiple indexes, real-time watch with filters, schema migration, enjoy 😌🍃.
Features
- Fast as the storage engine you choose (redb, IndexDB planned*).
- Embedded database (Linux, macOS, Windows, Android, iOS, WebBrowser WASM planned*).
- Support multiple indexes (unique secondary keys).
- Compatible with all Rust types (
enum
,struct
,tuple
etc.). - Query data (
get
,watch
,iter
etc.) using explicit type or type inference. - Real-time subscription with filters for
insert
,update
anddelete
operations. - Schema migration using native Rust coercion.
- Fully ACID-compliant transactions.
- Add your own serialization/deserialization logic planned* (e.g: zero-copy).
- Thread-safe.
- Plus, all features depending on the storage engine you choose:
Status
Early development. Not ready for production.
How to use?
See docs.rs.
Example
use ;
use *;
;
Roadmap
The following features are planned before the 1.0 release
- Stabilize the wording, if you have any suggestion follow this issue 🙏.
- Add benchmarks tests.
- Add documentation.
- Stable release of redb or implement another stable storage engine(s) for Linux, macOS, Windows, Android, iOS.
- Add support for IndexDB (WebBrowser).
- Add support for custom serialization/deserialization logic.
- Add CI for Linux, macOS, Windows, Android, iOS, WebBrowser.