sled
toydb
Our great sponsors
sled | toydb | |
---|---|---|
37 | 16 | |
7,758 | 5,886 | |
- | - | |
1.8 | 8.8 | |
12 days ago | 13 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sled
-
SableDb – a key/value store that uses RocksDB and Redis API (written in Rust)
a few times, seems interesting. The author's also built a lot of other cool concurrency primitives for Rust as well.
[0] https://github.com/spacejam/sled
-
Is Something Bugging You?
- Dropbox [3] uses a similar approach but they talk about it a bit more abstractly.
Sans-IO is more documented in Python [4], but str0m [5] and quinn-proto [6] are the best examples in Rust I’m aware of. Note that sans-IO is orthogonal to deterministic test frameworks, but it composes well with them.
With the disclaimer that my opinions are mine and mine alone, and don’t reflect the company I work at —— I do work at a rust shop that has utilized these techniques on some projects.
TigerBeetle is an amazing example and I’ve looked at it before! They are really the best example of this approach outside of FoundationDB I think.
[0]: https://risingwave.com/blog/deterministic-simulation-a-new-e...
[1]: https://risingwave.com/blog/applying-deterministic-simulatio...
[2]: https://dropbox.tech/infrastructure/-testing-our-new-sync-en...
[3]: https://github.com/spacejam/sled
[4]: https://fractalideas.com/blog/sans-io-when-rubber-meets-road...
[5]: https://github.com/algesten/str0m
[6]: https://docs.rs/quinn-proto/0.10.6/quinn_proto/struct.Connec...
-
RFC: redb (embedded key-value store) nearing version 1.0
Sled uses bw-tree actually https://github.com/spacejam/sled/wiki/sled-architectural-outlook
-
Production grade databases in Rust
There is a valid argument to be made for threads over async in a large percentage of use cases where async is considered the default. If this is what you are referring to however, I don't think they ever referred to async as completely useless: https://github.com/spacejam/sled/issues/1123.
-
Best local database that works on all platforms including web?
Have you looked into other pure-Rust databases as well, such as sled or GlueSQL which has an SQL interface on top of sled? I wonder how those would compare to Persy.
-
Are there any embedded databases that have multiple-process support?
I'm not sure what you need. Are these of any use? https://github.com/meilisearch/heed https://github.com/spacejam/sled
- Some key-value storage engines in Rust
-
Are there a demand for management system of embedded storage like RocksDB? I plan to build one in Rust as the language becoming a core of many popular databases but wonder if there’s a demand. Can’t find any similar project even in other languages.
There is also Sled but as I understand it that is being reworked to use the author's new DB core Marble
-
GreptimeDB: a new open source database designed for large-scale time-series data storage and processing, written in rust
There are some databases like sled/FlashDB designed to be embedded to other applications even bare metal microcontrollers. But I do doubt the potential bussiness value of a pure embedded database.
-
Ask HN: Serverless” key value store with transactions?
https://github.com/spacejam/sled
To add transaction support, you probably need a good understanding of how the memtable works in Log Structured Merge trees:
toydb
-
ToyDB: A Rust learning adventure, fun open-source project, and database learning resource for the community
This is great, but you might want to consider a different name. There's already a Rust project called ToyDB, and it's a distributed database with a Raft log, SQL, disk persistence, ACID transactions, etc. It's under active development (though the developer now works at Cockroach Labs), and has 5K stars on GitHub, so I think they have the right to the name.
- What would you rewrite in Rust?
-
Any ideas for resume
Build something you’d like to learn about. Things I’ve considered replicating: A distributed database (see https://github.com/erikgrinaker/toydb), an interpreter (crafting interpreters is a good book), a Ray tracer (http://raytracerchallenge.com/), an RPC compiler and framework, a simpler neural network framework ( https://github.com/pjreddie/darknet)…
-
Which software do you think would be essential for the RISC-V to be succesful ?
Hilariously, I was trying out ToyDB on the Lichee-RV recently. While it does compile and run the five-node example setup (and memory usage is surprisingly low, which is a plus considering the 0.5GB of RAM), performance is three orders of magnitude lower than on a desktop x86 PC. Some of that is due to just having a single core run 5 nodes, some is due to the lower clock speed and slower memory, and some is due to slower storage (SD card). I don't think that explains everything, so I may investigate that later.
-
Learning Rust You Need a Cognitive Frame
toydb
-
Database Development
Well I think if you could replicate this https://github.com/erikgrinaker/toydb anybody would hire you.
- SimpleDB: A Basic RDBMS Built from Scratch
- Ask HN: What are some good rust code to read to learn the language?
- Distributed SQL database in Rust, written as a learning project
- ToyDB: Distributed SQL Database in Rust
What are some alternatives?
RocksDB - A library that provides an embeddable, persistent key-value store for fast storage.
duckdb - DuckDB is an in-process SQL OLAP Database Management System
rust-rocksdb - rust wrapper for rocksdb
surrealdb - A scalable, distributed, collaborative, document-graph database, for the realtime web
redis-rs - Redis library for rust
prql - PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
bustub - The BusTub Relational Database Management System (Educational)
mini-redis - Incomplete Redis client and server implementation using Tokio - for learning purposes only
duckdb-rs - Ergonomic bindings to duckdb for Rust
heed - A fully typed LMDB wrapper with minimum overhead 🐦
talent-plan - open source training courses about distributed database and distributed systems