Nicheloom

Market intelligence for builders — see what's gaining traction before it's crowded.

Turbolite

a SQLite VFS serving sub-250ms cold JOIN queries from S3

Details

External ID
47534283
Source
HN
Company
—
Product
Turbolite
Website domain
github.com
Launched
March 26, 2026
Cohort
—
Upvotes
185
Upvotes percentile
0.9606396063960639
Tags
—
Fetched at
Sept. 7, 2026, 9:26 p.m.
Updated at
Sept. 7, 2026, 9:26 p.m.

Description

I built a SQLite VFS in Rust that serves cold queries directly from S3 with sub-second performance, and often much faster.It’s called turbolite. It is experimental, buggy, and may corrupt data. I would not trust it with anything important yet.I wanted to explore whether object storage has gotten fast enough to support embedded databases over cloud storage. Filesystems reward tiny random reads and in-place mutation. S3 rewards fewer requests, bigger transfers, immutable objects, and aggressively parallel operations where bandwidth is often the real constraint. This was explicitly inspired by turbopuffer’s ground-up S3-native design. https://turbopuffer.com/blog/turbopufferThe use case I had in mind is lots of mostly-cold SQLite databases (database-per-tenant, database-per-session, or database-per-user architectures) where keeping a separate attached volume for inactive database feels wasteful. turbolite assumes a single write source and is aimed much more at “many databases with bursty cold reads” than “one hot database.”Instead of doing naive page-at-a-time reads from a raw SQLite file, turbolite introspects SQLite B-trees, stores related pages together in compressed page groups, and keeps a manifest that is the source of truth for where every page lives. Cache misses use seekable zstd frames and S3 range GETs for search queries, so fetching one needed page does not require downloading an entire object.At query time, turbolite can also pass storage operations from the query plan down to the VFS to frontrun downloads for indexes and large scans in the order they will be accessed.You can tune how aggressively turbolite prefetches. For point queries and small joins, it can stay conservative and avoid prefetching whole tables. For scans, it can get much more aggressive.It also groups pages by page type in S3. Interior B-tree pages are bundled separately and loaded eagerly. Index pages prefetch aggressively. Data pages are stored by table. The goal is to make cold point queries and joins decent, while making scans less awful than naive remote paging would.On a 1M-row / 1.5GB benchmark on EC2 + S3 Express, I’m seeing results like sub-100ms cold point lookups, sub-200ms cold 5-join profile queries, and sub-600ms scans from an empty cache with a 1.5GB database. It’s somewhat slower on normal S3/Tigris.Current limitations are pretty straightforward: it’s single-writer only, and it is still very much a systems experiment rather than production infrastructure.I’d love feedback from people who’ve worked on SQLite-over-network, storage engines, VFSes, or object-storage-backed databases. I’m especially interested in whether the B-tree-aware grouping / manifest / seekable-range-GET direction feels like the right one to keep pushing.

Enrichment

Theme
database infrastructure and developer tools
Vertical
Horizontal
Function
Data infrastructure
Audience
Developer
AI stance
Not AI
Project type
Hobby / open-source project
Normalized one-liner
sqlite virtual filesystem for s3 queries
Manually corrected
False

Could you build this?

No Writing a custom SQLite Virtual File System (VFS) in Rust to execute sub-250ms cold join queries against S3 requires deep knowledge of SQLite's C internals, paging, and speculative range-request networking. Getting POSIX-like page caching and concurrency correct over high-latency object storage is a specialized systems engineering challenge.

What it would actually take: The system needs a custom Rust SQLite VFS implementing `sqlite3_vfs` and `sqlite3_io_methods`, translating SQLite B-Tree 4KB page reads into predictive multi-range HTTP GET requests to S3. The hardest engineering problems are minimizing round-trip times during sequential B-Tree traversals, speculative read-ahead of root/interior index pages, and handling local page caching with lock semantics. This demands a systems engineer with deep expertise in SQLite internal page structures and distributed storage I/O.

Discussion

20 comments analyzed.

Competitors mentioned: Neon, Fly Machine with SQLite, Litestream, LTX/Litestream (temporal locality approach), sqlite-prefetch

Concerns raised: 250ms startup is slow for DB queries, Write amplification from re-uploading entire page groups on single page dirtying, Not optimized for write-heavy or mixed-read/write workloads, Credentials handling unclear for frontend usage, WAL mode consistency management complexity

Feature requests: Browser/WASM support with OPFS and fetch instead of S3, B-tree introspection at page-child level for prefetching, Embedded WAL shipping for durability with grouped pages, Query-level manual eviction policies, Storage API abstraction for different backends

Competitors

Other products that read as similar to this one — 166 launches clear the similarity bar, closest 8 shown.

Attention rank: #8 of 167 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).

Launched 148 days after the earliest competitor.

Other launches for this product

Same idea, different domain

Nobody's really built a data infrastructure tool for Media & entertainment yet.