Deep dive into Turso, the "SQLite rewrite in Rust"
Posted by unsolved73 6 hours ago
Comments
Comment by ndiddy 5 hours ago
Comment by hu3 4 hours ago
1) It's MIT licensed. Including the test suite which is something lacking in SQLite:
https://github.com/tursodatabase/turso
2) They have a paid cloud option to drive income from:
Comment by simonw 4 hours ago
That's not entirely true. SQLite has a TON of tests that are part of the public domain project: https://github.com/sqlite/sqlite/tree/master/test
They do have a test suite that's private which I understand to be more about testing for different hardware - they sell access to that for companies that want SQLite to work on their custom embedded hardware, details here: https://sqlite.org/th3.html
> SQLite Test Harness #3 (hereafter "TH3") is one of three test harnesses used for testing SQLite.
Comment by MobiusHorizons 4 hours ago
I’ve been confused by this for a while. What is it competing with? Surely not SQLite, being client server defeats all the latency benefits. I feel it would be considered as an alternative to cloud Postgres offerings, and it seems unlikely they could compete on features. Genuinely curious, but is there any sensible use case for this product, or do they just catch people who read SQLite was good on hacker news, but didn’t understand any of the why.
Comment by IshKebab 3 hours ago
Comment by iamrobertismo 4 hours ago
Comment by bigstrat2003 2 hours ago
Comment by iamrobertismo 2 hours ago
Comment by g947o 4 hours ago
That says enough.
Comment by tcfhgj 4 hours ago
Comment by sam_lowry_ 4 hours ago
You must be kidding. Last time I checked, sqlite was mostly extensive test suites.
Comment by jzebedee 3 hours ago
Comment by HAMSHAMA 3 hours ago
Comment by koverstreet 4 hours ago
On the other hand, Rust code and the culture of writing Rust leads to far more modularity, so maybe some useful stuff will come of it even if the startup fails.
I have been excited to see real work on databases in Rust, there are massive opportunities there.
Comment by g947o 4 hours ago
Unless you are Amazon which has the resources to maintain a fork (which is questionable by itself with all the layoffs), you probably shouldn't touch this.
Comment by mhh__ 4 hours ago
Comment by CodingJeebus 5 hours ago
We've all been around long enough to know that "free" VC-backed software always means "free... until it's in our interest to charge for it". And yet users will still complain about the rugpull in 2026, no matter how many times they've been through it. "Fool me once, shame on you"
Comment by rantingdemon 5 hours ago
I'm not ready to entertain Turso as an alternative to something that is as battle tested as Sqlite.
Comment by floren 5 hours ago
I think it's time for a new law of headlines: anything labeled a "deep dive" isn't.
Comment by maxbond 3 hours ago
Comment by geodel 5 hours ago
Comment by Havoc 5 hours ago
Comment by fulafel 5 hours ago
See the features and roadmap at https://github.com/tursodatabase/turso
Comment by thisislife2 4 hours ago
Comment by dlisboa 3 hours ago
Building off of that into a SQLite-compatible DB doesn't seem to me as trying to piggyback on the brand. They have no other option as their product was SQLite to begin with.
Comment by IshKebab 3 hours ago
> SQLite compatibility for SQL dialect, file formats, and the C API
Comment by yencabulator 2 hours ago
Comment by IshKebab 1 hour ago
Comment by groundzeros2015 4 hours ago
Comment by dlisboa 3 hours ago
"Stability" is a word that means different things for different use cases.
Comment by groundzeros2015 3 hours ago
Comment by 0x457 4 hours ago
Comment by groundzeros2015 4 hours ago
Comment by 9rx 3 hours ago
And I expect they are right. Trying to test a codebase after the fact never goes well.
[1] With the kind of investment backing they have you'd think they'd be able to reach some kind of licensing deal, but who knows.
Comment by adamzwasserman 4 hours ago
Comment by CharlesW 3 hours ago
I don't understand this claim, given the breadth and depth of SQLite's public domain TCL Tests. Can someone explain to me how this isn't pure FUD?
"There are 51445 distinct test cases, but many of the test cases are parameterized and run multiple times (with different parameters) so that on a full test run millions of separate tests are performed." - https://sqlite.org/testing.html
Comment by einsteinx2 2 hours ago
Comment by digitalPhonix 2 hours ago
> 2. The TH3 test harness is a set of proprietary tests…
Comment by CharlesW 2 hours ago
Comment by tracker1 4 hours ago
In the past I've reached for FirebirdSQL when I needed local + external databases and wanted to limit the technology spread... In the use case, as long as transactions synched up even once a week it was enough for the disparate remote connections/systems. I'm honestly surprised it isn't used more. That said, SQLite is more universal and lighter overall.
Comment by adamzwasserman 4 hours ago
Comment by zbentley 4 hours ago
That’s hearsay that I haven’t dug into, so I may well be wrong.
Comment by ktimespi 4 hours ago
Comment by uwemaurer 5 hours ago
Comment by kevinfiol 4 hours ago
Comment by sauercrowd 5 hours ago
huh? That is clearly not the case. memory bugs - sure. Not having a public test suite, not accepting public contributions, weakly typed columns and lack of concurrency has nothing to do with the language. They're governance decisions, that's it.
>I see this situation trhough the prism of the innovator's dilemma: the incumbent is not willing to sacrifice a part of its market to evolve, so we need a new player to come and innovate.
I don't think the innovators dilemma quite applies in the open source world. Projects are tools, that's it. Preserving a project for the sake of preserving it isn't a good idea.
If people need to run a sqlite db in these exotic places, shedding it means someone else has to build their own tool now that can do it. Sqlite has decided that they care about that, so they support it, so they can't use rust. Seems sound.
Projects coming and going is a good thing in open source, not a bug.
Comment by jayd16 5 hours ago
Comment by overfeed 4 hours ago
Comment by rendaw 5 hours ago
Comment by jancsika 5 hours ago
That's an extraordinary claim for any C codebase.
Unless it ships with code enabling concurrency that is commented out, we should assume that "concurrency in C ain't easy" was a factor in that design choice.
Comment by gus_massa 5 hours ago
It looks like some parts are open source and other not. Does anyone know more about the backstory? (It looks like one is a custom program that generate fuzz test. Do they sell it to others SQL engines?)
Comment by Rendello 34 minutes ago
> We still maintain the first one, the TCL tests. They’re still maintained. They’re still out there in the public. They’re part of the source tree. Anybody can download the source code and run my test and run all those. They don’t provide 100% test coverage but they do test all the features very thoroughly. The 100% MCD tests, that’s called TH3. That’s proprietary. I had the idea that we would sell those tests to avionics manufacturers and make money that way. We’ve sold exactly zero copies of that so that didn’t really work out. It did work out really well for us in that it keeps our product really solid and it enables us to turn around new features and new bug fixes very fast.
https://corecursive.com/066-sqlite-with-richard-hipp/#testin...
Comment by blibble 5 hours ago
it's free
but if you want the compliance paperwork, you pay for it
Comment by dodomodo 3 hours ago
Comment by tln 5 hours ago
Comment by TeaVMFan 4 hours ago
Comment by adzm 5 hours ago
Comment by eviks 5 hours ago
Comment by IshKebab 3 hours ago
Comment by 9rx 6 hours ago
Why not Postgres? https://pglite.dev
Comment by rudedogg 5 hours ago
I’m excited to see things improve though. Having a more traditional database, with more features and less historical weirdness on the client would be really cool.
Edit: https://pglite.dev/benchmarks actually not looking too bad.. I might have something new to try!
Comment by causalscience 6 hours ago
Comment by avhception 6 hours ago
Comment by roywiggins 6 hours ago
Comment by duped 5 hours ago
edit: it looks like pglite is only useful for web apps
Comment by evertheylen 4 hours ago
Comment by 9rx 4 hours ago
Where else other than web apps (herein meaning network-attached database servers that, more often than not, although not strictly so, use HTTP as the transport layer) are at meaningful risk of bumping up against SQLite write contention? If your mobile/desktop app has that problem, it is much more likely that you have a fundamental design issue and not a scaling problem.
Comment by duped 2 hours ago
Comment by 9rx 1 hour ago
To alleviate the pressure of those pitfalls, we started adding middle databases (oft called web apps, API services, REST services, etc.) that proxied the database through protocols that are more ideal to the realities and limitations of the network. Clients were then updated to use the middle database, seeing the hacks required to make SQL usable over the network to be centralized in one spot, greatly reducing the management burden.
But having two database servers is pretty silly when you think about it. Especially when the "backend" database's protocol isn't suitable for the network[1]. Enter the realization that if you use something like SQLite, you don't need another, separate database server. You can have one database server[1] that speaks a network friendly API. Except SQLite itself has a number of limitations that doesn't make it well suited to being the backing engine of your network-first DBMS.
That is what the article is about — Pointing out those limitations, and how Turso plans to overcome them. If your use case isn't "web app", SQLite is already going to do the job just fine.
[1] After all, if it were suited for networks, you wouldn't need the middle service. Clients would already be talking to that database directly instead.
[2] As in one logical database server. In practice, you may use a cluster of servers to provide that logical representation.
Comment by groundzeros2015 4 hours ago
Comment by gethly 4 hours ago
https://github.com/search?q=repo%3Atursodatabase%2Fturso%20u...
Comment by sgammon 5 hours ago
Comment by yunohn 6 hours ago
Comment by w-m 5 hours ago
The RIIR-benchmark: rewrite CPython in Rust, pass the complete test suite, no performance regressions, $100 budget. How far away are we there, a couple months? A few years? Or is it a completely ill-posed problem, due to the test suite being tied to the implementation language?
Comment by bathtub365 5 hours ago
Comment by w-m 4 hours ago
Single-issue coding benchmarks are getting saturated, and I'm wondering when we'll get to a point where coding agents will be able to tackle some long-running projects. Greenfield projects are hard to benchmark. So creating code or porting code from one language to another for an established project with a good test suite should make for an interesting benchmark, no?