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.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"x-flatbuffers": {
"namespace": "demo",
"root_type": "demo_User",
"file_ident": "USER"
},
"definitions": {
"demo_User": {
"type": "object",
"x-flatbuffers": { "type": "table" },
"properties": {
"id": {
"type": "integer",
"x-flatbuffers": { "id": 0, "base_type": "int32" }
},
"name": {
"type": "string",
"x-flatbuffers": { "id": 1 }
},
"email": {
"type": "string",
"x-flatbuffers": { "id": 2, "key": true }
},
"age": {
"type": "integer",
"x-flatbuffers": { "id": 3, "base_type": "int32" }
}
}
}
}
}
Stream format: [4-byte size LE][FlatBuffer with file_id]...
// Create database from schema const db = new FlatSQLDatabase(schema, "mydb"); // Register file identifiers for routing db.registerFileId("USER", "User"); db.registerFileId("POST", "Post"); // Register data sources db.registerSource("satellite-1"); db.registerSource("ground-station"); // Stream size-prefixed FlatBuffers to a source const bytesConsumed = db.ingest(streamData, "satellite-1"); // Query with SQL (filter by _source) const result = db.query("SELECT * FROM User WHERE _source = 'satellite-1'");