Comment by Animats

Comment by Animats 2 days ago

7 replies

I wish someone would finish a decent database in Rust. At least get it to 1.0 stable and go on from there.

- Limbo: "Limbo is a work-in-progress..."

- Sled [1]. Not sure what's going on there. Last release 3 years ago, but a constant stream of "alpha" versions that never get released.

SQLite with Rust bindings seems to be the go-to system. Depending on C packages is often a headache when cross-compiling, though.

[1] https://crates.io/crates/sled/

fooker 2 days ago

Starting projects is fun and easy. Finishing is not.

noirscape 2 days ago

The problem that Rust runs into is that the community settled on wanting enforced semver extremely quickly, combined with an overall tendency to really not want to do post-1.0 releases if they can help it.

The result is that most Rust crates sit on the 0.x version forever (since anything before 1.0 in semver is pretty much a free-for-all), even though they're probably going to be perfectly usable in most cases with the same library breakage you expect in other languages.

IMO it just shows another dent in thinking that a simple string can confer any information about the API contracts on offer. Semver is a neat indicator, but practically that's all it is.

tyushk 2 days ago

SurrealDB [1] is a fairly complete database written in Rust. I've used it for fairly small web apps and it felt comfortable to work with coming from MongoDB.

[1] https://github.com/surrealdb/surrealdb?tab=readme-ov-file

  • Tanjreeve 2 days ago

    SurrealDB is still really coy on its performance/what it's good at/not good at to adopt for a major data project. There's lots of features but no real indication as to if I could scale them for a dataset of billions of records. I've had my fingers burnt too many times before by products with a big table of tick box features but none of them are really usable (e.g Geospatial data comes up for me a lot)

    Either you need to make it easy and zero friction to adopt like duckDB and let people find out themselves in an hour or two or you need to provide some sort of benchmarks + evidence that it isn't going to die on its arse the moment you put larger than memory amounts of data in.

    Nearly all of these projects work fine for in memory size datasets but only finding out after you've put major effort into adoptionv+integration isn't really easy for someone working with data when you have something battle tested like Postgres et Al.

koakuma-chan 2 days ago

I recommend `rusqlite` or `heed` (`lmdb` wrapper, key-value database). I think `sled` is abandoned.