Deep dive into Turso, the “SQLite rewrite in Rust”

Article reception and “deep dive” criticism

  • Many readers found the post shallow relative to its “deep dive” title: mostly feature overview and motivation, lacking benchmarks, detailed architecture, binary/extension compatibility, or networked-mode specifics.
  • Some liked the human, opinionated tone and the SQLite/C–Rust discussion, but others called the piece misleading or incomplete, saying it ended just as it got interesting.

What Turso is trying to be

  • Turso is framed as a SQLite-compatible database that can scale from in-process to networked, adding features like concurrency, replication, and sharding while preserving SQLite’s dialect, file format, and C API.
  • Confusion remains about the exact “networked mode,” as docs and README reportedly don’t clearly describe it.

Rust rewrite vs SQLite in C

  • Supporters argue Rust simplifies adding complex features (concurrency, distributed behavior) compared to C, and that the rewrite enables new testing approaches (deterministic simulation) without relying on SQLite’s proprietary test suite.
  • Critics counter that most problems cited (governance, contributions, typing, concurrency design) are not language issues. They also question whether a Rust rewrite can match SQLite’s decades of testing and real-world hardening.
  • Some see Turso as effectively a new database trading on SQLite’s compatibility/brand; views differ on whether that’s acceptable.

SQLite’s testing and proprietary components

  • A major thread is the fact that SQLite’s full test harness (especially TH3 and other non-public tests) is proprietary, even though a huge public test suite exists.
  • One side argues Turso’s “we lacked the full tests” rationale is overblown or FUD, since public tests are extensive and TH3 is mainly a business add-on.
  • The other side stresses that lacking the exact tests SQLite uses does constrain confident invasive changes, making a clean-room implementation plus new tests more appealing.

Reliability, maturity, and performance

  • Strong skepticism about using a young, SQLite-compatible Rust DB in production, given SQLite’s 25-year track record.
  • Some early users report success but acknowledge incomplete API coverage and “beta” status. Others report issues with related projects (e.g., libSQL) and say Turso’s ecosystem feels immature.
  • There’s also a meta-complaint about constant “rewrite in Rust” trends: best case is “same thing, new bugs.”

VC model, licensing, and trust

  • Several comments distrust VC-backed infrastructure: expectation of hypergrowth and future “rug pulls” once users are locked in.
  • Counterpoints note Turso is MIT-licensed (including its tests) with a paid cloud offering, so self-hosting and forking remain possible.
  • Others worry MIT licensing makes it easier for big clouds to outcompete Turso’s own service, making its business survival uncertain, though that’s framed as a Turso problem more than a user problem.

Use cases and competition

  • Intended niche: apps that start with in-process SQLite and later need concurrent writes, replication, or multi-node scaling without a full database migration.
  • Critics call this a narrow and somewhat uncommon path; if you anticipate needing those features, they argue you’d typically start with PostgreSQL or another established server DB.
  • Some question Turso’s networked product vs just using Postgres, Firebird, H2, or other embedded/remote-capable databases.

Wider ecosystem themes

  • Discussion touches on Rust’s suitability for databases, the difficulty of concurrency in C, and distaste for ORMs and leaky abstractions.
  • There’s concern that constant novelty (e.g., “rewrite in Rust”) undermines long-term stewardship exemplified by SQLite’s small, stable team and highly disciplined engineering culture.