Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge. Learn more →
Top 23 Rust Database Projects
-
MeiliSearch
A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.
With the VertexAI endpoint set up and tested, our next step is to work with LibreChat. LibreChat is an open-source ChatGPT clone that can integrate with various AI models, including the PaLM 2 models via the VertexAI API. It's built using React, MongoDB, and Meilisearch technologies.
-
Project mention: InfluxDB is an open source time series database written in Rust | news.ycombinator.com | 2023-10-03
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
1.0 version but https://github.com/surrealdb/surrealdb/issues/1548 is still open :)
-
sonic
🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.
Project mention: sonic: Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM. | /r/programming | 2023-10-27 -
Project mention: just wanted to ask is there an in memory database that uses s3 or gcp cloud storage as permanent storage | /r/Database | 2023-07-04
I know that very similar functionality to this is in TiDB Serverless ( https://tidbcloud.com ). TiDB is a distributed relational database. It uses TiKV ( which is a key/value engine ) as the storage engine. You could use SQL to access your K/V records. There is ongoing work in TiKV to support S3 directly as the storage backend ( https://github.com/tikv/tikv/issues/6506 ) .
-
Project mention: People who use rust and postgres in production along with RDS proxy, what do you do? | /r/rust | 2023-11-15
Both seem nice. However, both of them rely very heavily on prepared statements. Unfortunately, using prepared statements is a no-go when you use connection poolers like pgbouncer, or in my case AWS RDS proxy. A discussion in Diesel indicates that disel is not going to provide any support for disabling prepared stements (https://github.com/diesel-rs/diesel/discussions/3575), and a discussion on sqlx hints that disabling prepared statements is possible, but I haven't found any documentation or examples for it.
-
neon
Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
Project mention: Show HN: HighContext.ai – Serverless JSON Blob Storage | news.ycombinator.com | 2023-11-16When a blob is saved, first I write it to Postgres (https://neon.tech), so ensures there's a persisting backup. However, it's typically a waste of money to store infrequently accessed blobs in disk with Postgres over months and years. After 4-6 weeks data is offloaded to object storage - so that you benefit from low long term storage costs.
The lifecycle of a blob works out roughly something like as follows, based on last read date:
< 30 mins ago
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
-
Sled uses bw-tree actually https://github.com/spacejam/sled/wiki/sled-architectural-outlook
-
databend
Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. Cloud: https://databend.com
Project mention: I Accidentally Saved My Company Half a Million Dollars | news.ycombinator.com | 2023-10-30Indeed, under a pay-as-you-go model, if there's a lack of precise control over the warehouse, such as a 10-minute suspension, it could lead to significant waste. This is because most queries might only take a few seconds, and the rest of the time is wasted. If you find Snowflake expensive, consider Databend. It's an open-source, cost-efficient alternative to Snowflake, and it maintains a consistent product experience with Snowflake.
Open-source: https://github.com/datafuselabs/databend
-
Project mention: ToyDB: A Rust learning adventure, fun open-source project, and database learning resource for the community | /r/rust | 2023-05-06
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.
-
risingwave
The streaming database: redefining stream processing 🌊. PostgreSQL-compatible, highly performant, scalable, elastic, and reliable ☁️.
Project mention: RisingWave's Roadmap - Redefining Stream Processing with the Rust-Built Streaming Database | /r/rust | 2023-11-02Hey everyone - One and a half year ago, we open sourced RisingWave, a Rust-built streaming database, under Apache 2.0 license. Two weeks ago, we released RisingWave 1.3. Just last week, we unveiled RisingWave's roadmap.
-
Some recent solutions to this problem include Differential Dataflow and Materialize. It would be neat if postgres adopted something similar for live-updating materialized views.
-
Project mention: Hyper – A fast and correct HTTP implementation for Rust | news.ycombinator.com | 2023-05-12
Haven't used it myself, but https://github.com/SeaQL/sea-orm seems to be popular in some communities and async
-
I like rust binaries because they are cross-platform. I've found cool ones like
- https://github.com/static-web-server/static-web-server/
- https://github.com/Qovery/Replibyte
If you know any repos where I may find compilation of tools I'll be thankful!
-
greptimedb
An open-source, cloud-native, distributed time-series database with PromQL/SQL/Python supported.
Continuing to work hard on a new MetricEngine in GreptimeDB. BTW, If you have a keen interest in Rust or database development, GreptimeDB might be a good starting point. Check it out for some good first issues here.
-
The goto Redis client for Rust is called redis-rs. It has over 3k stars on Github. but I found it very annoying to use because I quickly found out that if you want to set any value you had to get a mutable reference to the underlying client. Which meant great pain to store Redis client in the global scope. People who do not know what a mutable reference is consider the let keyword in JavaScript. you can mutate or change a variable that is initiated with let.
-
Project mention: SpacetimeDB v0.7 Released: WebAssembly stored procedure database | /r/programming | 2023-10-16
-
For C there should be good options.
For Rust it doesn't appear that well-supported.
A very simple approach is to poll for changes using `pg_logical_slot_get_changes()` - that should work with any driver. That's what I used for my initial experimentation, before switching over to the streaming replication protocol for better performance.
The streaming replication protocol is not that complicated, but currently you'll have to handle some of the low-level protocol yourself, or work with some very experimental implementations. There's a project to help get you started at [1], and some more discussion at [2].
For the logical decoder, wal2json is quite nice to experiment with, but I've found pgoutput is not that complicated and gives you something closer to the raw data.
-
cozo
A transactional, relational-graph-vector database that uses Datalog for query. The hippocampus for AI!
I've been keeping an eye on https://github.com/cozodb/cozo which is pretty close to something I've wanted, a sqlite version of datalog/datomic.
-
Project mention: GlueSQL v0.14 Release - Schemaless data support and the official doc website | /r/rust | 2023-05-30
-
Hello! So far I have seen tools like mycli or gobang, but I was wondering if there were more tools for database management from the terminal? Either for relational or non-relational databases.
-
If you're less concerned about the "structure" of your data (e.g., serializing into rust types) and just need tabular data that can be queried (e.g., how much did we bet on X date, who placed a bet on Y team, etc.) I would definitely lean more towards a SQLite database for that kind of work. rusqlite can get you a functional database fairly quickly with a little reading of the documentation (be sure to use the "bundled" feature).
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Rust Database related posts
- What's everyone working on this week (49/2023)?
- Skytable Octave was just released with BlueQL, advanced data modeling, complex collections and rich querying ✨🚀🎱. Tell us what you think!
- Skytable NoSQL Database: Even with BlueQL, Skytable Outperforms Redis and KeyDB
- SQLSync: Collaborative Offline-first SQLite
- SQLSync: Collaborative Offline-First SQLite
- Rust std:fs slower than Python
- A self-hosted back end for Deno KV
-
A note from our sponsor - InfluxDB
www.influxdata.com | 6 Dec 2023
Index
What are some of the best open-source Database projects in Rust? This list will help you:
Project | Stars | |
---|---|---|
1 | MeiliSearch | 40,091 |
2 | InfluxDB | 26,778 |
3 | surrealdb | 23,513 |
4 | sonic | 18,819 |
5 | tikv | 13,849 |
6 | diesel | 11,249 |
7 | neon | 10,483 |
8 | sled | 7,435 |
9 | databend | 6,754 |
10 | toydb | 5,521 |
11 | risingwave | 5,471 |
12 | materialize | 5,412 |
13 | sea-orm | 5,397 |
14 | Replibyte | 3,826 |
15 | greptimedb | 3,237 |
16 | redis-rs | 3,235 |
17 | SpacetimeDB | 3,173 |
18 | rust-postgres | 3,120 |
19 | cozo | 2,809 |
20 | gluesql | 2,500 |
21 | gobang | 2,471 |
22 | rusqlite | 2,462 |
23 | horaedb | 2,290 |