PGConf.Brasil 2026 · Lightning talk · Daniel Moya20 s
HeliosDB-Nano

20 famílias de recursos enterprise. Open source, para você. 20 families of enterprise features. Open source, for you.

PostgreSQL wirepsql · libpq · JDBC · pg
MySQL wiremysql · mysqli · WordPress
Embarcado · serverlessin-process, no daemon
Branching · time-travelGit-like branches · AS OF
TDE AES-256 · FIPS (build opt-in)at-rest encryption · TLS · RLS via embedded API
Vetores nativosHNSW · PQ · no extension
Grafo · full-textfull-text in SQL · graph via MCP (build from source)
Replicação · primário/standbyWAL streaming · primary/standby
MCP · agentesMCP endpoint (build from source) · 19 agent skills
BaaS estilo Supabase e FirebaseAuth · REST · Realtime; REST/wire RLS planned

Rust, do zero. Moderniza apps PostgreSQL, MySQL e SQLite — vetores nativos, sem servidor, sem extensão. Laptop, edge, CI, agentes. Written from scratch in Rust to modernise PostgreSQL-, MySQL- and SQLite-powered apps — native vectors, no server, no extension. Laptop, edge, CI, AI agents.

psql → PostgreSQL 16.0 (HeliosDB Nano 3.58.1)~15-17 MB download · um binário~30 MB RAMRustApache-2.0

Nota (2026-10-15): a palestra foi gravada com o HeliosDB Nano 3.58.1; a versão atual é a 4.41.1. MCP, code-graph e graph-RAG são recursos de build a partir do código-fonte, e não estão nos binários publicados nem na imagem de contêiner. Note (2026-10-15): the talk was recorded on HeliosDB Nano 3.58.1; the current release is 4.41.1. MCP, code-graph and graph-RAG are build-from-source features, not in the published binaries or the container image.

01 · Database Branching45 s

Git para o seu banco. Branch em 0,12 ms. Git for your database. A branch in 0.12 ms, measured in this session.

Copy-on-write: o branch nasce vazio e lê do main; só o que muda é gravado. Snapshot MVCC próprio. Copy-on-write: the branch starts empty and reads through to main; only what you change gets written. Each branch has its own MVCC snapshot.

psql · HeliosDB-Nano 3.58.1 · sessão real
CREATE DATABASE BRANCH agent_7 FROM main AS OF NOW;
Time: 0.120 ms
USE BRANCH agent_7;
UPDATE orders SET total = total * 0.9 WHERE customer = 'carla';
DELETE FROM orders WHERE status = 'pending';
SELECT id, customer, total, status FROM orders ORDER BY id;
 1 | ana   | 120 | paid
 3 | carla | 270 | paid          ← só no branch
USE BRANCH main;
SELECT id, customer, total, status FROM orders ORDER BY id;
 1 | ana   | 120  | paid
 2 | bruno | 80.5 | pending       ← main intacto
 3 | carla | 300  | paid
SHOW BRANCHES;
 agent_7 | parent: main | Active
 main    |              | Active
DROP DATABASE BRANCH agent_7;
Time: 0.139 ms
0,12 ms

Criar um branch, medido nesta sessão (Nano 3.58.1). Copy-on-write: nada é copiado na criação; depois, o branch guarda só as suas alterações (DML).Create a branch, measured in this session (Nano 3.58.1). Copy-on-write: nothing is copied at creation; afterwards the branch holds only its own DML changes.

2–10 %

Armazenamento extra por branch — só as linhas modificadas.Extra storage per branch — modified rows only.

0 mudanças

Na sua app. Mesma conexão, mesmo SQL. USE BRANCH e pronto.In your app. Same connection, same SQL. USE BRANCH and go.

02 · Casos de uso50 s

Um branch para cada coisa que você tinha medo de fazer no main. A branch for everything you were afraid to do on main.

AGENTES DE IASandbox por agente

Um branch por agente: tenta, valida, descarta ou promove. N agentes em paralelo, zero risco no main. AI agents: one branch per agent — try, validate, discard or promote. N agents in parallel, zero risk to main.

CREATE DATABASE BRANCH agent_7 FROM main AS OF NOW;

CLONEClone instantâneo

Dev e teste com dados reais, em ms — sem pg_dump, sem restore. Instant clone: dev/test on real data in milliseconds — no pg_dump, no restore, no waiting.

CREATE DATABASE BRANCH dev_ana FROM main AS OF NOW;

REFRESHRefresh de staging

DROP e recrie a partir do main. Igual ao prod em 0,2 ms. DB refresh: DROP and re-branch from main — staging equals prod in 0.2 ms.

DROP DATABASE BRANCH staging; CREATE DATABASE BRANCH staging FROM main AS OF NOW;

A/BTeste A/B de schema e dados

A e B na mesma app; USE BRANCH escolhe. Meça, promova a vencedora. A/B testing: variant A and B, same app; USE BRANCH picks. Measure, then promote the winner.

USE BRANCH pricing_b;

MIGRAÇÃOMigração sem medo

ALTER TABLE num branch, teste a app. Deu errado? DROP. O main nem soube. Fearless migrations: run ALTER TABLE on a branch, test the app. Wrong? DROP. Main never noticed.

USE BRANCH migr_42; ALTER TABLE orders ADD COLUMN discount NUMERIC;

TIME-TRAVELAuditoria no passado

Branch a partir de uma transação antiga: o banco como ele estava, sem restore. Time-travel: branch from an old transaction and query the database as it was — no backup restore.

CREATE DATABASE BRANCH audit FROM main AS OF TRANSACTION 1;
03 · Product Quantization60 s

Vetores que cabem na RAM — com o mesmo SQL do pgvector. Vectors that fit in RAM — with the same SQL you use with pgvector.

384 × f32 = 1 536 B por vetor
→
8 sub-vetores × 1 byte = códigos PQ
PQ na RAM, vetores no disco, rerank exato em 2 estágios (F32 / F16 / I8). PQ codes in RAM, full vectors on disk, exact two-stage rerank. Rerank precision dial: F32 / F16 / I8.
psql · 5 000 embeddings · 384 dims · sessão real
CREATE TABLE docs (id INT PRIMARY KEY, body TEXT, embedding VECTOR(384));
CREATE INDEX docs_hnsw ON docs USING hnsw (embedding vector_cosine_ops);
CREATE INDEX docs_pq ON docs USING hnsw (embedding vector_cosine_ops)
  WITH (quantization = 'product');
SELECT index_name, quantization, memory_bytes FROM pg_vector_index_stats();
 docs_hnsw | None    | 7681024
 docs_pq   | Product | 1073232       ← 7,2× menos RAM
SELECT id, body FROM docs ORDER BY embedding <=> '[…384 dims…]' LIMIT 5;
 42 | doc 42 · 1202 | doc 1202 · 3448 | doc 3448 · …
Time: 3.479 ms
SELECT id, body FROM docs WHERE body LIKE 'doc 4%'
  ORDER BY embedding <=> '[…384 dims…]' LIMIT 5;
 42 | doc 42 · 40 | doc 40 · 414 | doc 414 · …
Time: 12.330 ms                ← filtro + KNN num só percurso
16× menos RAM

Índice PQ-HNSW vs exato — 19 k vetores, 384 dims (27,8 MB → 1,7 MB).PQ-HNSW vs exact index — 19 k vectors, 384 dims (27.8 MB → 1.7 MB).

0,987 recall@10

vs 0,989 exato: −0,2 % de recall por 16× de memória.vs 0.989 exact: −0.2 % recall for 16× less memory.

durável

Sem rebuild ao reiniciar com o build vector-persist; deletes online com reparo de vizinhos.No rebuild on restart with the vector-persist build; online deletes with neighbour repair.

Honesto: 16× / 0,987 vêm do fixture de regressão (128 e 384 dims); o 7,2× é desta sessão com 5 k vetores — cresce com o volume. Treino PQ (k-means) na criação do índice: ~46 s aqui. Honest: 16× / 0.987 come from the project's regression fixture (dims 128 and 384); the 7.2× above is this session with 5 k vectors — the ratio grows with volume. PQ training (k-means) runs at index creation: ~46 s for 5 k × 384 here.

04 · vs pgvector50 s

pgvector é ótimo dentro do seu Postgres. O Nano leva o mesmo SQL para onde não há Postgres. pgvector is great inside your Postgres. Nano takes the same SQL to where there is no Postgres — and compresses the index.

HeliosDB-Nanopgvector
Onde rodaWhere it runsUm binário (download de ~15-17 MB), embarcado ou servidor PG-wire. Laptop, edge, CI, agente.Extensão dentro de um servidor PostgreSQL.
Compressão do índiceIndex compressionProduct Quantization nativa: WITH (quantization='product'). 16× menos RAM residente.halfvec (2×), binário (32×, rerank manual). Sem PQ.
Recall com compressãoRecall under compression0,987 vs 0,989 exato — rerank em 2 estágios.Depende do rerank manual; binário perde recall sem ele.
Filtro + KNNFiltered KNNUm só percurso do grafo (12 ms na sessão acima).Iterative scan (0.8+) ou pós-filtro com ef_search maior.
DeletesDeletesOnline, com reparo de vizinhos no grafo.Tombstones até o VACUUM.
Ao lado dos vetoresNext to the vectorsBranching, time-travel, grafo, full-text — no mesmo binário.O resto do Postgres (que continua ótimo).
A tese

Mesmos operadores e sintaxe de índice — mais um botão de compressão e um banco inteiro que cabe onde o Postgres não cabe. Same operators, same index syntax — plus a compression switch and a whole database that fits where Postgres doesn't.

05 · Leve para casa hoje30 s

Baixe, dê uma estrela e apoie o lançamento. Download it, star it, and back the launch.

Um binário, sem dependências. Aponte o seu psql e crie o primeiro branch antes do café acabar. One binary, no dependencies. Point your psql at it and create your first branch before the coffee is gone.

$ cargo install heliosdb-nano $ curl -sSf https://install.heliosdb.com | sh $ heliosdb-nano start --data-dir ./data  →  psql -h localhost -p 5432
GitHub

HeliosDatabase/HeliosDB-Nano · Apache-2.0Source, issues, 19 agent skills, examples.

QR github.com/HeliosDatabase/HeliosDB-Nano
Star no GitHub
HeliosDB-Nano no Product Hunt

15 SET · 0h PT / 9h CEST

QR lançamento HeliosDB-Nano no Product Hunt

Lembrete no calendário + link do Product HuntCalendar reminder + Product Hunt link. Upvote in the first hours.

▲ Product Hunt
Daniel Moya

Inventx AG · GPC

QR danimoya.com
danimoya.com