Kiln v0.2
Kiln is a relational database implemented in Rust. Unlike databases like PostgreSQL and SQLite, Kiln does not operate on a client-server model. Instead, it is a stand-alone library that allows it to be used with zero dependencies.
This is a very early version of the database. So far the only thing done is the format the database stores tables.
A high level guide is available that provides an introduction to Kiln.
Features implemented so far
- Creating databases
- Creating and accessing existing tables
- Accessing rows from tables
- By row ID
- By value (eg: find all rows where foo = bar)
- Parse specfiles for type safe columns
- Accessing rows from tables
- Accessing rows
- Getting columns from rows
- Setting columns in rows
Roadmap
- Implement O(1) joining (Easier said than done)
- Make this all thread-safe with async support (futures maybe?)
Usage
Here is a simple example of working with one simple table. The structure of the queries is very different from how it would be accomplished in a tradition SQL database. This unique structure makes it possible to easily interact with the database using expressive, declarative Rust code.
extern crate kiln;