Multi-model database · built in Rust
One database for SQL, documents, cache, vectors and graphs.
TriCoreDB runs five data models behind one native protocol, one set of users and roles, and one data volume. Start it with Docker or Kubernetes and connect from the language you already use.
docker pull trinesh14/tricoredb:0.1.0-rc.3-r2The current beta. Published with an SBOM and build provenance.
One server, not a stack
Stop running five databases
A relational database, a document store, a cache, a vector index and a graph engine usually mean five servers to secure, back up and monitor. TriCoreDB is one.
- ✕ 5 drivers to wire up
- ✕ 5 backup jobs
- ✕ 5 things to monitor
- ✕ Glue code to keep in sync
SQL · document · cache · vector · graph, plus LLM context export, in one server.
- One wire protocol
- One auth model
- One backup & restore
- One thing to operate
One connection reaches all of them
Five data models, plus LLM context
Every model runs in the same server. Enable all of them, or only the ones you need, with one environment variable.
Relational SQL
Typed tables, secondary indexes, a planner with EXPLAIN, and snapshot-isolation transactions.
- Transactions
- Indexes & EXPLAIN
- JOINs
- GROUP BY
- Subqueries
- Window functions
- Bound parameters
Documents
Schemaless collections with nested-path filters, secondary indexes and an aggregation pipeline.
- Nested paths
- Update one / many
- Indexes
- Aggregation
- JSONL import/export
Cache & key-value
A durable key-value store with TTLs, counters, lists, sets, hashes and streams.
- TTL
- Counters
- Lists
- Sets
- Hashes
- Streams
- Namespaces
Vector search
Cosine, dot-product and L2 similarity over a persisted HNSW index with an exact re-rank.
- HNSW index
- Cosine / dot / L2
- Metadata filters
- int8 quantization
Graphs
Labelled nodes and edges with traversal, shortest paths and a read-only Cypher subset.
- Traversal
- Shortest path
- Weighted paths
- Degree
- Cypher MATCH
LLM context
Read-only, redacted context and schema export from your data, sized for a language model prompt.
- TOON / JSON / Markdown
- Schema export
- Redaction
One SDK. One connection.
Every model from the same client
Open one connection and use every data model, with the same users, the same TLS and the same error codes.
One native protocol
Every data model is served on port 8427. One connection reaches SQL, documents, cache, vectors and graphs.
One set of users
Argon2id passwords, roles and per-operation permissions apply the same way to every data model.
One data volume
All models write to one durable, encrypted data directory, so there is one thing to back up and restore.
One error model
Errors carry a stable code, such as engine.disabled or not_leader, that every SDK exposes the same way.
await db.execute('CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY, name TEXT)');
await db.execute('INSERT INTO users VALUES (?, ?)', [1, 'Ada']);
const rows = await db.query('SELECT id, name FROM users WHERE id = ?', [1]);
rows.dicts(); // [ { id: '1', name: 'Ada' } ]Node.js SDK shown. Every SDK offers the same families of calls.
In the box
Built to run in production
Security, durability and operations come with the server, not as add-ons.
Secure by default
The image requires TLS and encrypts the data volume with AES-256-GCM unless you turn them off. There is no built-in password.
Transactions
Snapshot-isolation transactions with BEGIN, COMMIT and ROLLBACK, all-or-nothing on a crash.
Durable writes
An append log with group commit: a write is acknowledged once it is durable.
Replicated clusters
Raft leader election and majority-commit replication. Followers forward writes to the leader, and a new leader takes over in about two seconds.
Users and roles
Argon2id passwords, admin / app / readonly roles, login rate-limiting and an audit trail.
Choose your modules
Run every data model, or only the ones you need: TRICORE_MODULES=sql,cache runs just those two.
Hardened container
Distroless base, no shell, non-root, stripped binaries. Published with an SBOM, build provenance and a signature.
Kubernetes-ready
A Helm chart with probes, persistent volumes, a PodDisruptionBudget, a values schema and a built-in helm test.
Prometheus metrics
Request counters and a latency histogram for p50, p95 and p99, plus liveness and readiness probes.
Works with your language
Eleven official SDKs
Each one is published to its language’s registry and open source on GitHub.
Run it your way
Docker or Kubernetes
The same image runs on a laptop and in a cluster.
Docker
A distroless, non-root image with TLS and encryption on by default. Five commands from nothing to a secured server, or one for a local development instance.
Kubernetes
A Helm chart for one node or a replicated Raft cluster, with probes, persistent volumes, a PodDisruptionBudget and a values schema.
Up and running
Get started in three steps
Questions
Frequently asked
With Docker (the image trinesh14/tricoredb) or on Kubernetes with the Helm chart at oci://ghcr.io/trinesh14/charts/tricoredb. The Install page walks through both.
Eleven official SDKs: Node.js, Python, Go, Rust, .NET, Java, Kotlin, Ruby, Swift, Dart and PHP. Each is published to its language’s registry and open source on GitHub.
Yes. Every SDK is Apache-2.0 licensed, and its source is public on GitHub. The server itself is not open source: it is distributed as a container image and Helm chart and, as a beta, a Windows installer, under the TriCoreDB Beta Software Licence.
TLS and encryption at rest are on by default, so the server needs a certificate, a key and an encryption key before it starts. For local development you can turn both off with TRICORE_TLS=off and TRICORE_ENCRYPTION=off.
Yes. TRICORE_MODULES takes all, or a comma list of sql, document, cache, vector, graph and llm. The default is sql, document and cache. A call to a disabled module fails with the error code engine.disabled.
0.1.0-rc.3 is a beta. Pin a version tag or a digest, keep a backup of your encryption key, and test your workload before depending on it.
One database. Every data model.
Pull the image, add the SDK for your language, and build across SQL, documents, cache, vectors and graphs.
docker pull trinesh14/tricoredb:0.1.0-rc.3-r2