Live data from Hacker News

Limbo: A complete rewrite of SQLite in Rust

turso.tech

121–130 of 238 posts

Re: Limbo: A complete rewrite of SQLite in Rust

#121

Given the code quality and rigid testing, SQLite is probably the last project that should be rewritten. It'd be great to see all other C code rewritten first!

I agree on a level that SQLIte is a master class in testing and quality. However, considering how widely used it is (essentially every client application on the planet) and that it does get several memory safety CVEs every year there is some merit in a rewrite in a memory safe language.

Re: Limbo: A complete rewrite of SQLite in Rust

#122

A side topic: is there a nice big extensive free test suite for sql, for people interested in making toy databases to use?

The standard TPC-C and TPC-H benchmarks are available online at https://www.tpc.org/tpc_documents_current_versions/current_s...

They aren’t fully open source but are free to use, including use with open source software. They may be a bit on the complex side though.

Re: Limbo: A complete rewrite of SQLite in Rust

#124
post #63
post #35

Earlier quoted context omitted.

That's fully in line with what they're announcing here. It's the announcement of a new project that has passed the prototyping stage, but one that has not reached the 1.0 stage.

And it never will The first 90% is easy, it's the second 90% that is very hard.

Someone has done a rewrite before…

Re: Limbo: A complete rewrite of SQLite in Rust

#126
post #82
post #60

The license is "Copyright 2024 the Limbo authors". How is that possible if Limbo is based on a rewrite? Do they claim a clean room implementation? It seems wise of SQLite to close down their test suite. That's a great idea I wish I had heard about earlier.

SQLite is in the public domain. It is perfectly legal to create a derivative works from a public domain project and license it however you want. It's not cool and kind of a dick move to put it under a more restrictive license, but it's legal.

It's not a dick move if you are making legitimate improvements -- especially if you still reference the origin. That's literally the idea behind public domain

Re: Limbo: A complete rewrite of SQLite in Rust

#128

Earlier quoted context omitted.

So a hard fork?

What is meant by a 'hard fork'? Are there different kinds of forks?

To me, a "hard" fork is one where you plan not to maintain any compatibility with your upstream and not to share any future code in either way (neither from original to fork nor back). "Soft" forks often retain a degree of compatibility, and some future developments can be shared.

(In this case, since it's a rewrite in Rust, it's not actually a fork at all, I think)

Re: Limbo: A complete rewrite of SQLite in Rust

#129

Earlier quoted context omitted.

An SQLite fork will have a hard time being compelling enough to draw users away from the main project. Being written in Rust is the most compelling reason that I could think of. SQLite has many annoying quirks (foreign key constraints disabled by default and non-strongly-typed columns are my two pain points) but a fork that addresses them would still not pull me away from the original project that I have so much trus…

If I were to fork SQLite, drawing users away from the main project would be a non-goal. The goal would be to get strict tables and foreign key constraints enforced 100% of the time.

Yeah, I would assume that any project like this would strive to be a soft fork that just has a few minimal patches to address specific needs, not something that actually tries to compete with the original.

Re: Limbo: A complete rewrite of SQLite in Rust

#130

Earlier quoted context omitted.

So a hard fork?

What is meant by a 'hard fork'? Are there different kinds of forks?

The kinds that keep file format compatibility?

Or are they claiming they will support MVCC with full file format and interprocess synchronization compatibility.

Post reply on HN