Что такое AngaraBase
AngaraBase — реляционная СУБД на Rust, совместимая с протоколом и подмножеством SQL PostgreSQL. Проектируется для нагрузок типа ERP/SaaS, где важны предсказуемое поведение, явные границы и отсутствие «магии».
- Платформа сервера: Linux x86_64 / aarch64 (
glibc >= 2.28) - Клиенты: любая платформа через стандартные PostgreSQL-драйверы
- Текущая ветка:
0.6.x
AngaraBase — молодой проект. Эта документация описывает то, что уже работает в коде на текущей ветке, и явно отделяет это от того, что находится в roadmap.
Что вы получаете прямо сейчас
| Возможность | Состояние |
|---|---|
pgwire-протокол, подключение psql/JDBC/psycopg/pgx без модификаций | Доступно |
| Подмножество SQL PostgreSQL c явным контрактом и pinned-тестами | Доступно |
| Транзакции, MVCC (UNDO-log), уровни READ COMMITTED / REPEATABLE READ | Доступно |
| Per-database backup/restore (cold + online/PITR baseline) | Доступно |
| Многоуровневая безопасность: SCRAM/TLS, RBAC, RLS v1, audit chain, TDE, break-glass | Доступно |
| Индексы AngaraTree (B+tree, BRIN), статистика AngaraStat (HLL, гистограммы, MCV) | Доступно |
| Cost-based оптимизатор AngaraPlan, streaming-исполнение AngaraFlow | Доступно |
Vectorized execution AngaraVector (scan/filter/project/join/agg, режим auto/force_*) | Доступно (bounded) |
In-memory storage AngaraMemory (storage='memory', durability tiers) | Доступно (bounded) |
| Параллельное исполнение AngaraParallel (DOP-капы, partitioned join) | Доступно (bounded) |
| Columnar storage AngaraColumn, HTAP, distributed SQL | В roadmap (см. Architecture) |
Точные границы поддержки SQL и текущие ограничения зафиксированы в SQL compatibility overview и Known issues. AngaraBase не публикует «процент совместимости» — вместо этого приводит точный контракт.
Принципы
| Принцип | Что это значит на практике |
|---|---|
| Restrictive by default | По умолчанию строгие проверки, ограничения и аутентификация. «Магические» обходы требуют явного флага |
| Contract-first | Каждая фича имеет явный контракт (что поддержано, какой SQLSTATE при отказе, какие инварианты) |
| No semantic surprises | Неподдержанная конструкция возвращает явный SQLSTATE (0A000 и др.), а не молчаливый bypass |
| Fail-closed | При неопределённости система отклоняет запрос, а не пропускает его |
| Evidence-first | Корректность доказывается артефактами тестов и oracle-скриптами, не маркетингом |
| PostgreSQL-friendly | Совместимость по pgwire и SQL подмножеству; никакой собственной обвязки в клиенте |
Совместимость с PostgreSQL
AngaraBase реализует pgwire-протокол как первичный API. С точки зрения клиента это обычный PostgreSQL
endpoint:
psql "host=127.0.0.1 port=5432 user=angara_root dbname=base sslmode=verify-full"
| Стек | Драйвер | Статус |
|---|---|---|
| Python | psycopg2, psycopg3 | Поддерживается |
| Node.js | pg (node-postgres) | Поддерживается |
| Java | PostgreSQL JDBC | Поддерживается |
| Go | lib/pq, pgx | Поддерживается |
| .NET | Npgsql | Поддерживается |
| Tooling | psql, DBeaver | Поддерживается с оговорками — см. Client compatibility |
Полный compat-контракт и smoke-сценарии: SQL compatibility overview.
Чем AngaraBase отличается от PostgreSQL
| Область | PostgreSQL | AngaraBase |
|---|---|---|
| Pluggable storage | В работе (pg_am v2) | Встроено: row-store + AngaraMemory; AngaraColumn — в roadmap |
| MVCC | UNDO-in-heap (bloat, VACUUM) | UNDO-log (отдельный лог, heap содержит только текущие версии) |
| Backup/restore | Кластерный | Per-database, cold + online/PITR baseline |
| Безопасность | Расширения и конфигурация | Многослойная модель из коробки: RBAC + RLS + audit chain + TDE + break-glass |
| Именованные подсистемы | — | AngaraTree, AngaraStat, AngaraPlan, AngaraFlow, AngaraIO, AngaraGC, AngaraVector, AngaraMemory, AngaraParallel — каждая с явным контрактом и метриками |
| Поведение при unsupported SQL | Часто best-effort | Явный SQLSTATE, fail-closed |
| Совместимость как метрика | Полный SQL | Контрактное подмножество с pinned-тестами и публичным known-issues регистром |
Кому подходит
- Командам ERP/SaaS (например, на базе Odoo), которым нужна предсказуемая PostgreSQL-совместимая БД с явным контрактом совместимости.
- DBA, ценящим явные границы поведения, а не «best-effort» совместимость.
- Инженерам, которым важно понимать, что именно поддерживается, и иметь reproducible-тесты как доказательство.
- Сообществу, готовому участвовать в формировании молодой СУБД.
Что AngaraBase не делает (на текущей ветке)
- Не предоставляет distributed SQL и multi-master HA — это горизонт следующих major-веток.
- Не реализует полный SQL PostgreSQL — только контрактное подмножество с явной границей.
- Не маскирует неподдержанные фичи — вы получаете явную ошибку с SQLSTATE.
- Не работает на не-Linux серверах. Клиенты — кросс-платформенные.
С чего начать
| Вы | Куда идти |
|---|---|
| Знакомитесь впервые | Архитектура «с высоты птичьего полёта» |
| Хотите запустить локально | Быстрый старт |
| Оцениваете пригодность для своего стека | SQL compatibility overview, Known issues |
| Планируете продакшен-развёртывание | Установка, Безопасность, Hardening |
| Сообщаете об ошибке | Поддержка |
Ссылки
- Quickstart — собрать, запустить, выполнить первый SQL за несколько минут.
- Architecture — как устроена БД внутри.
- SQL reference — какой SQL поддерживается.
- Security model — модель безопасности.
- Operations — конфигурация и эксплуатация.
- Glossary — термины и именованные подсистемы.