SQL queries over raw FlatBuffer storage. Zero conversion, real-time indexing, pure streaming.
Apache 2.0 licensed, free and open source.
Built on DA-FlatBuffers
No parsing. No conversion. Binary data arrives ready to query.
Pipe size-prefixed FlatBuffers directly to the engine. File identifiers route to tables automatically.
Each FlatBuffer's 4-byte identifier routes it to the correct table. No external metadata needed.
B-tree indexes built during streaming ingest. No separate indexing phase. Query immediately.
Direct pointer access to FlatBuffer data. No deserialization. Maximum performance.
A database built for the real-time, decentralized web.
Modern apps receive data from everywhere
FlatSQL keeps data in its native FlatBuffer format, routes it by source, and queries it with SQL. Ideal for isomorphic applications where the same code runs in browsers, workers, and servers—all sharing the same binary protocol.
_source fieldStream FlatBuffers and query with SQL in real-time.
One C++ WASI artifact runs in browsers through a small shim and in WasmEdge through a resident runner with native query caching.
import { createStandaloneArtifactBuilder } from "flatsql/artifacts/standalone"; const builder = await createStandaloneArtifactBuilder(schema, { runtime: "standalone" }); await builder.registerFileId("TELE", "Telemetry"); await builder.ingestBuffers(telemetryBuffers); await builder.registerQueryTemplate( "packetById", "SELECT packet_id, subsystem FROM Telemetry WHERE packet_id = ?", true ); await builder.queryTemplate("packetById", [42]); // cache miss await builder.queryTemplate("packetById", [42]); // cache hit const stats = await builder.getQueryCacheStats();