Lykiadb
A toy document DB mainly created for self-education and fun
Install / Use
/learn @lykia-rs/LykiadbREADME
λykiaDB
<div style="display: flex;"> <div> </div> <div> </div> </div> <p align="center"> <img alt="LykiaDB logo" height="200" src="https://raw.githubusercontent.com/lykia-rs/lykiadb/refs/heads/main/assets/logo.svg"> </p>Lykia is a document database management system built for educational purposes. The famous book, Crafting Interpreters, was the main source of inspiration for the project. It turned into a database, though.
Overview
- 100% safe Rust, #BlazinglyFast
- A weird scripting and query language, combination of JavaScript and SQL. The language is a separate module thus can be used without the database.
- A subset of JSON data types in both scripting language itself and storage
- In-disk and in-memory storage
- ACID compliance
- Replication
Primary goals
- [x] Core scripting language + DML/DDL SQL
- [x] Client and server apps
- [x] A minimal standard library
- [ ] Query planning and binding (in progress)
- [ ] Query execution (in progress)
- [ ] Persistent storage engine (in progress)
- [ ] Transactions and multi-version concurrency control
Phase 2 goals
- [ ] Replication with Raft
- [ ] JIT execution for expression evaluation
- [ ] Query optimization
## Non-goals
- LykiaDB is not (and will not be) a production-grade database.
Getting Started
To use Lykia, you can download the latest release from the GitHub releases page.
Developing via client:
cargo run-script dev-client
Run the server:
$ cargo run --release --bin lykiadb-server
Run the shell:
$ cargo run --release --bin lykiadb-shell lykiadb-shell/examples/fib.ly
Flamegraph a benchmark:
$ sudo cargo flamegraph --bench interpreter -- --bench
For playground, please visit lykia-rs/playground
License
Lykia is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Related Skills
himalaya
339.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
oracle
339.1kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
prose
339.1kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
Command Development
83.8kThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
