What is AngaraBase
AngaraBase is a relational DBMS written in Rust, compatible with the PostgreSQL protocol and a subset of its SQL. It is designed for ERP/SaaS workloads, where predictable behavior, explicit boundaries, and an absence of “magic” are critical.
- Server platform: Linux x86_64 / aarch64 (
glibc >= 2.28) - Clients: any platform via standard PostgreSQL drivers
- Current branch:
0.6.x
AngaraBase is a young project. This documentation covers what is already working in the code on the current branch, and explicitly separates it from what is in the roadmap.
What you get right now
| Capability | Status |
|---|---|
pgwire protocol, connecting psql/JDBC/psycopg/pgx without modifications | Available |
| A PostgreSQL SQL subset with an explicit contract and pinned tests | Available |
| Transactions, MVCC (UNDO-log), READ COMMITTED / REPEATABLE READ isolation levels | Available |
| Per-database backup/restore (cold + online/PITR baseline) | Available |
| Multi-layer security: SCRAM/TLS, RBAC, RLS v1, audit chain, TDE, break-glass | Available |
| AngaraTree indexes (B+tree, BRIN), AngaraStat statistics (HLL, histograms, MCV) | Available |
| AngaraPlan cost-based optimizer, AngaraFlow streaming execution | Available |
AngaraVector vectorized execution (scan/filter/project/join/agg, auto/force_* modes) | Available (bounded) |
AngaraMemory in-memory storage (storage='memory', durability tiers) | Available (bounded) |
| AngaraParallel parallel execution (DOP-caps, partitioned join) | Available (bounded) |
| AngaraColumn columnar storage, HTAP, distributed SQL | In roadmap (see Architecture) |
The exact boundaries of SQL support and current limitations are documented in the SQL compatibility overview and Known issues. AngaraBase does not publish a “compatibility percentage” — instead, it provides an exact contract.
Principles
| Principle | What it means in practice |
|---|---|
| Restrictive by default | Strict checks, constraints, and authentication by default. “Magic” bypasses require an explicit flag |
| Contract-first | Every feature has an explicit contract (what is supported, what SQLSTATE on failure, what invariants) |
| No semantic surprises | Unsupported constructs return an explicit SQLSTATE (0A000 etc.), not a silent bypass |
| Fail-closed | When uncertain, the system rejects the request rather than letting it through |
| Evidence-first | Correctness is proven by test artifacts and oracle scripts, not marketing |
| PostgreSQL-friendly | pgwire and SQL subset compatibility; no custom wrappers in the client |
PostgreSQL Compatibility
AngaraBase implements the pgwire protocol as its primary API. From the client’s perspective, it is a standard PostgreSQL endpoint:
psql "host=127.0.0.1 port=5432 user=angara_root dbname=base sslmode=verify-full"
| Stack | Driver | Status |
|---|---|---|
| Python | psycopg2, psycopg3 | Supported |
| Node.js | pg (node-postgres) | Supported |
| Java | PostgreSQL JDBC | Supported |
| Go | lib/pq, pgx | Supported |
| .NET | Npgsql | Supported |
| Tooling | psql, DBeaver | Supported with caveats — see Client compatibility |
Full compat contract and smoke scenarios: SQL compatibility overview.
How AngaraBase differs from PostgreSQL
| Area | PostgreSQL | AngaraBase |
|---|---|---|
| Pluggable storage | In progress (pg_am v2) | Built-in: row-store + AngaraMemory; AngaraColumn — in roadmap |
| MVCC | UNDO-in-heap (bloat, VACUUM) | UNDO-log (separate log, heap contains only current versions) |
| Backup/restore | Cluster-wide | Per-database, cold + online/PITR baseline |
| Security | Extensions and configuration | Multi-layer model out of the box: RBAC + RLS + audit chain + TDE + break-glass |
| Named subsystems | — | AngaraTree, AngaraStat, AngaraPlan, AngaraFlow, AngaraIO, AngaraGC, AngaraVector, AngaraMemory, AngaraParallel — each with explicit contract and metrics |
| Behavior on unsupported SQL | Often best-effort | Explicit SQLSTATE, fail-closed |
| Compatibility as a metric | Full SQL | Contractual subset with pinned tests and public known-issues registry |
Who it is for
- ERP/SaaS teams (e.g. based on Odoo) who need a predictable PostgreSQL-compatible database with an explicit compatibility contract.
- DBAs who value explicit behavioral boundaries over “best-effort” compatibility.
- Engineers who care about knowing exactly what is supported and having reproducible tests as proof.
- The Community willing to participate in shaping a young DBMS.
What AngaraBase does not do (on the current branch)
- It does not provide distributed SQL and multi-master HA — these are for future major branches.
- It does not implement full PostgreSQL SQL — only a contractual subset with clear boundaries.
- It does not mask unsupported features — you get an explicit error with a SQLSTATE.
- It does not run on non-Linux servers. Clients are cross-platform.
Getting Started
| You | Where to go |
|---|---|
| Meeting us for the first time | Architecture “from a bird’s-eye view” |
| Want to run locally | Quickstart |
| Evaluating fit for your stack | SQL compatibility overview, Known issues |
| Planning a production deployment | Installation, Security, Hardening |
| Reporting an error | Support |
Links
- Quickstart — build, run, and execute your first SQL in a few minutes.
- Architecture — how the DB is structured internally.
- SQL reference — what SQL is supported.
- Security model — security model.
- Operations — configuration and operations.
- Glossary — terms and named subsystems.