#system #idea #database #entity-component #implemented #relational #basic

vdb

A database system implemented in rust that takes ideas from Entity Component Systems and relational databases

4 releases (breaking)

0.4.0 Jul 29, 2019
0.3.0 Jul 20, 2019
0.2.0 Jul 19, 2019
0.1.0 Jul 19, 2019

#1343 in Game dev

MIT license

39KB
802 lines

vdb - a database system implemented in rust

A basic database system that takes ideas from Entity Component Systems and relational databases.

Run example with

cargo run --example notebook

State of the project

  • no dependencies except for serde and chrono
  • loads and saves
  • add/update/delete key/value pairs
  • search for keys/values

Planned

  • incremental updates to the save files
    • not calling Vdb::save() will not lose data
  • model relationships between stored keys, like foreign keys
  • speed improvements
    • separate store for each key
    • indexes
    • partitions
  • use of enums instead of &str for keys
  • use builder pattern to query database
  • bigger & smaller comparisons (a > b)
  • create more examples
  • remove dependency on serde
    • custom more compact text format
  • configuration of storage
    • ~/.config, /var/, custom
  • cleanup api

Further in the future

  • allow access from multiple threads
  • client-server architecture
  • binary data storage (with or without serde)
  • tooling for schema upgrades
  • diesel integration

Dependencies

~1.6–2.6MB
~50K SLoC