Skip to content

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.

Install with
$docker pull trinesh14/tricoredb:0.1.0-rc.3-r2

The current beta. Published with an SBOM and build provenance.

SBOM and build provenance Open-source SDKsv0.1.0-rc.3
tricore · :8427Your appone SDKTRICOREkernelone auth · one backupSQLDocumentCache / KVVectorGraphLLM context
5
data models
11
official SDKs
TLS
on by default
AES-256
encryption at rest

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.

Without TriCoreDB5 systems
Relational database
Document store
Key-value cache
Vector database
Graph database
  • ✕ 5 drivers to wire up
  • ✕ 5 backup jobs
  • ✕ 5 things to monitor
  • ✕ Glue code to keep in sync
→
With TriCoreDB1 engine
TriCoreDB logoTriCoreDB

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.

SQL

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
Document

Documents

Schemaless collections with nested-path filters, secondary indexes and an aggregation pipeline.

  • Nested paths
  • Update one / many
  • Indexes
  • Aggregation
  • JSONL import/export
Cache / KV

Cache & key-value

A durable key-value store with TTLs, counters, lists, sets, hashes and streams.

  • TTL
  • Counters
  • Lists
  • Sets
  • Hashes
  • Streams
  • Namespaces
Vector

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
Graph

Graphs

Labelled nodes and edges with traversal, shortest paths and a read-only Cypher subset.

  • Traversal
  • Shortest path
  • Weighted paths
  • Degree
  • Cypher MATCH
LLM

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.

All SDKs

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