Store your data once, query it any way you need. Object, relational, document, graph, time-series, key-value, vector, and log — all in a single, unified engine.
Every model operates over the same LSM-tree storage engine. An object can be queried as a row, projected as a document, traversed as a graph node, searched as a vector, or aggregated as a log stream.
Persist Koder Lang objects directly — no ORM, no impedance mismatch. Classes map to storage with inheritance, references, and polymorphism preserved.
zero-ORMinheritancepolymorphic queriesFull SQL-compatible interface with tables, joins, constraints, views, materialized views, CTEs, and window functions.
SQLjoinsACIDviewsSchema-flexible JSON documents with nested field access, array operations, aggregation pipelines, and optional schema enforcement.
JSONschema-lesspipelinesFirst-class nodes and edges with BFS/DFS traversals, Dijkstra shortest path, PageRank, community detection, and cycle detection.
traversalsPageRankshortest pathHypertables with automatic chunking, retention policies, continuous aggregates, downsampling, and InfluxDB line protocol compatibility.
hypertablesaggregatesretentionRich data structures — lists, sets, sorted sets, hashes, streams — with TTL expiration, pub/sub messaging, and atomic operations.
structuresTTLpub/subHNSW index for approximate nearest neighbor search with cosine, euclidean, dot-product, and manhattan distance metrics. Hybrid search with metadata filters.
HNSWcosinehybrid searchUnified log aggregation with LogQL query language (Grafana Loki compatible), multi-stage pipelines, live tail, alerting, syslog receiver, and full-text search via trigram indexing.
LogQLLoki-compatiblelive tailpipelinesDefine a class in Koder Lang and persist it directly. No mapping files, no schema migrations, no boilerplate.
# Define a class and persist it — zero ORM class User attr_accessor :name, :email, :age def initialize(name, email, age) @name = name @email = email @age = age end end user = User.new("Alice", "alice@koder.dev", 30) db.object.store(user) # Query with Koder Lang syntax adults = db.object.query("User") { |u| u.age > 18 && u.email.end_with?("@koder.dev") }
One query language that spans all eight models. SQL-compatible with extensions for graph traversals, time-series bucketing, vector search, and LogQL translation.
-- Relational SELECT name, AVG(salary) OVER (PARTITION BY dept) FROM employees WHERE active = true; -- Graph traversal TRAVERSE OUTBOUND 'alice' EDGE follows MAX 3 WHERE age > 25 RETURN name; -- Time-series bucketing TIME_BUCKET metrics INTERVAL 3600 AGGREGATE avg_cpu = AVG(cpu) GROUP BY host FILL zero; -- Vector similarity search SELECT * FROM embeddings SIMILAR_TO [0.1, 0.2, 0.3] KNN 10;
Full REST API for all models, plus WebSocket for live queries and change data capture. GraphQL auto-generated from your schema.
# Insert a document curl -X POST https://db.koder.dev/api/v1/\ collections/posts/documents \ -H 'Content-Type: application/json' \ -d '{"title":"Hello","body":"World"}' # Vector search curl -X POST https://db.koder.dev/api/v1/\ vectors/embeddings/search \ -d '{"vector":[0.1,0.2,0.3],"k":10}' # Live query via WebSocket {"type":"live", "query":"SELECT * FROM users"}
Push logs from any source and query them with LogQL — fully compatible with Grafana Loki. Live tail, alerting, and multi-stage pipelines built in.
# Push logs via CLI echo "Hello World" | kdb log push \ --labels "job=test" # Query logs with LogQL kdb log query '{job="test"} |= "error"' # Live tail kdb log tail '{job="test"}' # Push via Loki-compatible API curl -X POST https://db.koder.dev/loki/api/v1/push \ -H 'Content-Type: application/json' \ -d '{"streams":[{"stream":{"job":"app"}, "values":[["1679000000000","log line"]]}]}' # Range aggregation kdb log query 'rate({job="app"}[5m])'
Every feature you need from a modern database, designed from the ground up.
MemTable, WAL, SSTables with bloom filters, leveled compaction. Optimized for both reads and writes.
Serializable isolation with MVCC. Deadlock detection, savepoints, and two-phase commit for distributed transactions.
B-tree, Hash, R-tree (geospatial), HNSW (vector). Automatic index selection by the query planner.
Raft consensus for leader election and log replication. Consistent hashing with virtual nodes for sharding.
JWT authentication, API keys, RBAC, row-level security policies. Encryption at rest and in transit.
Live queries, change data capture, WebSocket streaming, and pub/sub messaging built into the core.
Full and incremental backups with zstd compression. Point-in-time recovery via WAL replay.
Prometheus-compatible metrics, slow query log, audit logging, and health checks out of the box.
Stored procedures, triggers, and scheduled tasks written in Koder Lang, executing inside the database.
Use as a standalone server or embed directly into your Koder Lang application as a library. Zero external dependencies.
HTTP/REST, WebSocket, GraphQL, and wire protocol. InfluxDB line protocol for time-series ingestion.
Built-in web UI with query editor, data browser, graph visualizer, and real-time statistics.
LogQL query language (Grafana Loki compatible), multi-stage processing pipelines, live tail via WebSocket, pattern/threshold alerting, syslog receiver.
Centralized agent registry, remote configuration, network health diagnostics ingestion, and .ktrace file import for distributed monitoring.
Clean layered design where each component does one thing well.
Koder DB combines the best features from 25+ open-source databases.
| Feature | Koder DB | PostgreSQL | MongoDB | Neo4j | Redis | InfluxDB |
|---|---|---|---|---|---|---|
| Relational | ✓ | ✓ | — | — | — | — |
| Document | ✓ | Partial | ✓ | — | — | — |
| Graph | ✓ | — | — | ✓ | — | — |
| Time-Series | ✓ | Extension | — | — | — | ✓ |
| Key-Value | ✓ | — | — | — | ✓ | — |
| Vector Search | ✓ | Extension | Atlas | — | — | — |
| Object-Oriented | ✓ | — | — | — | — | — |
| Log Aggregation | ✓ | — | — | — | — | — |
| Live Queries | ✓ | LISTEN | Streams | — | Pub/Sub | — |
| Embeddable | ✓ | — | — | — | — | — |
| GraphQL API | ✓ | — | — | — | — | — |
One database. Eight models. Zero compromises.