Skip to content

lykia-rs/lykiadb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

λykiaDB

CI

codecov

LykiaDB logo

Lykia is a toy multi-model database basically written for educational purposes.

Overview

  • Written in Rust
  • A weird scripting and query language, combination of JavaScript and SQL. Built based on the language "Lox" which is explained in the famous book, Crafting Interpreters.
  • A subset of JSON data types in both scripting language itself and storage
  • In-disk and in-memory storage
  • ACID compliance
  • Replication

Roadmap

  • Core scripting language
  • A minimal standard library
  • Data manipulation language ("SELECT", "INSERT", "UPDATE", "DELETE")
  • Event loop, client-server communication
  • Data definition language ("CREATE COLLECTION", etc.) (in progress)
  • Query binding and planning (in progress)
  • LSM storage engine (based on mini-lsm) (in progress)
  • MVCC for transaction management (based on mini-lsm)
  • B-Tree implementation for indexing
  • Plan optimization
  • Basic replication with Raft

Getting Started

To use Lykia, you can download the latest release from the GitHub releases page.

Run the server:

$ cargo run --release --bin lykiadb-server

Run the client:

$ cargo run --release --bin lykiadb-shell cli/examples/fib.ly

Client transmits the fib.ly in an infinite loop.

License

Lykia is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

About

A toy DB with a scripting language mainly created for self-education and fun

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published