lykiadb
所属分类:其他
开发工具:Rust
文件大小:0KB
下载次数:0
上传日期:2023-12-05 17:10:34
上 传 者:
sh-1993
说明: 具有脚本语言的玩具数据库,主要为自我教育和娱乐而创建
(A toy DB with a scripting language mainly created for self-education and fun)
文件列表:
Cargo.toml (619, 2023-12-06)
LICENSE (11316, 2023-12-06)
benches/ (0, 2023-12-06)
benches/interpreter.rs (1271, 2023-12-06)
benches/scripts/ (0, 2023-12-06)
benches/scripts/fib.ly (125, 2023-12-06)
benches/scripts/for.ly (99, 2023-12-06)
benches/scripts/while.ly (580, 2023-12-06)
benches/scripts/while.short.ly (272, 2023-12-06)
examples/ (0, 2023-12-06)
examples/fib.ly (330, 2023-12-06)
examples/first_sql.ly (259, 2023-12-06)
examples/fn.ly (443, 2023-12-06)
examples/scan_err.ly (122, 2023-12-06)
src/ (0, 2023-12-06)
src/cli/ (0, 2023-12-06)
src/cli/mod.rs (1407, 2023-12-06)
src/lang/ (0, 2023-12-06)
src/lang/ast/ (0, 2023-12-06)
src/lang/ast/expr.rs (859, 2023-12-06)
src/lang/ast/mod.rs (979, 2023-12-06)
src/lang/ast/sql.rs (1775, 2023-12-06)
src/lang/ast/stmt.rs (635, 2023-12-06)
src/lang/mod.rs (91, 2023-12-06)
src/lang/parser.rs (19131, 2023-12-06)
src/lang/scanner.rs (33635, 2023-12-06)
src/lang/tests/ (0, 2023-12-06)
src/lang/tests/helpers.rs (99, 2023-12-06)
src/lang/tests/mod.rs (17, 2023-12-06)
src/lang/token.rs (5683, 2023-12-06)
src/lang/visualization.rs (7259, 2023-12-06)
src/lib.rs (58, 2023-12-06)
src/main.rs (106, 2023-12-06)
src/runtime/ (0, 2023-12-06)
src/runtime/environment.rs (3007, 2023-12-06)
... ...
# λykiaDB
[![CI](https://github.com/lykia-rs/lykiadb/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/lykia-rs/lykiadb/actions/workflows/ci.yml)
Lykia is a toy document database basically written for educational purposes. It is planned to be a modest mixture of popular kids in town (e.g. SurrealDB).
## Overview
- Written in Rust
- A weird scripting and query language, combination of PHP 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
- [x] Core scripting language
- [ ] A minimal standard library (in progress)
- [ ] SQL parsing (in progress)
- [ ] Query planning
- [ ] Async runtime/event loop
- [ ] In-memory storage engine
- [ ] Persistent storage engine (Bitcask)
- [ ] Transaction management with MVCC
- [ ] B-Tree implementation for indexes
- [ ] Basic replication with Raft
## Getting Started
To use Lykia, you can download the latest release from the GitHub releases page.
REPL:
```shell
$ cargo run
```
Alternatively, you can run a Lykia script by passing its name as the first argument.
```shell
$ cargo run examples/fib.ly
```
## License
Lykia is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
近期下载者:
相关文件:
收藏者: