An single binary sql engine for C++ applications that need structured, queryable storage. PragmaticDB runs as a TCP server and speaks SQL. Point any client at it, send statements, get results back. No Postgres installation, no SQLite wrapper, no third-party runtime sitting between your application and its data.
- SQL over TCP
- Persistent storage
- Per-table isolation
- Zero dependencies
Requirements: a C++20-capable compiler and make.
make app
make testStart the server and connect with a TCP client.
make runIn another terminal:
nc localhost 8080| Field | Value |
|---|---|
| Server | 127.0.0.1:8080 |
| N | 1000 inserts, 100 selects, 100 durable inserts |
| Metric | Throughput | Latency |
|---|---|---|
| INSERT (in-memory, no COMMIT) | 15211 ops/sec | 0.066 ms/op |
| INSERT (durable, COMMIT each) | 5398 ops/sec | 0.185 ms/op |
| SELECT * (1000 rows/scan) | 112 ops/sec | 8.950 ms/op |
| Summary | Value |
|---|---|
| COMMIT latency (1000 dirty pages) | 0.04 ms |
| In-memory vs durable speedup | 2.8x |
- Example Queries Examples
- What are the limitations of this engine as of now? Limitations
- Sql reference sheet SQL reference
- How can i benchmark the database engine? Benchmarking guide
- Architecture
- Whiteboard illustrations (excalidraw) whiteboard
- Class Diagram (rendered) SVG
MIT. See LICENSE.