- Um banco de dados de grafos de alto desempenho desenvolvido em Rust, que funciona tanto em modo embarcado quanto em modo servidor, mantendo baixo uso de memória
- Suporta tanto o modelo Labeled Property Graph (LPG) quanto triplas RDF, permitindo ampla utilização, de redes sociais à web semântica
- Oferece suporte a várias linguagens de consulta, como GQL, Cypher, Gremlin, GraphQL, SPARQL e SQL/PGQ, ampliando as opções para desenvolvedores
- Fornece um conjunto completo de recursos, incluindo busca vetorial baseada em HNSW, transações ACID, isolamento de snapshot com MVCC e bindings para múltiplas linguagens
- Integra-se com frameworks de IA como LangChain, LlamaIndex e MCP, apoiando a combinação de dados em grafo com aplicações de IA
Visão geral do Grafeo
- Grafeo é um banco de dados de grafos de alto desempenho desenvolvido em Rust, que opera tanto em modo embarcado quanto em modo servidor, mantendo baixo uso de memória
- Registrou o melhor desempenho no LDBC Social Network Benchmark e oferece suporte a execução vetorizada, chunking adaptativo e operações otimizadas com SIMD
- Suporta os dois modelos de dados, Labeled Property Graph (LPG) e triplas RDF, sendo adequado para diversos domínios, de redes sociais à web semântica
- Fornece um conjunto completo de recursos, incluindo transações ACID, isolamento de snapshot com base em MVCC, bindings para múltiplas linguagens e um ecossistema de integração com IA
Principais características
-
Arquitetura de alto desempenho
- Escrito com um motor central baseado em Rust, sem dependência de C, podendo usar opcionalmente jemalloc/mimalloc e bibliotecas C de TLS
- Inclui motor de execução baseado em push, processamento paralelo em unidades morsel, armazenamento colunar, compressão por tipo e otimizador de consultas baseado em custo
- Suporta execução eficiente de consultas com data skipping usando zone map
-
Suporte a múltiplas linguagens de consulta
- Suporta GQL, Cypher, Gremlin, GraphQL, SPARQL e SQL/PGQ
- Permite escolher a linguagem mais adequada conforme a natureza do projeto e a experiência do desenvolvedor
- GQL oferece correspondência declarativa de padrões no padrão ISO, Cypher usa padrões ASCII-art compatíveis com Neo4j, e Gremlin segue o estilo de travessia baseado em Apache TinkerPop
- GraphQL suporta tanto LPG quanto RDF, SPARQL é a linguagem padrão W3C para consultas RDF, e SQL/PGQ suporta a sintaxe GRAPH_TABLE do SQL:2023
-
Modelos de dados
- O modelo LPG usa uma estrutura de nós e arestas com rótulos e propriedades, com suporte a propriedades de vários tipos de dados
- O modelo RDF usa a estrutura de triplas subject-predicate-object e permite consultas eficientes por meio de índices SPO/POS/OSP
- RDF segue os padrões do W3C, sendo adequado para web semântica, ontologias e linked data
-
Recursos de busca vetorial
- Fornece busca por similaridade baseada em HNSW com suporte a quantização escalar, binária e por produto
- Permite combinar exploração de grafos com busca por similaridade semântica
-
Embarcado e autônomo
- Pode ser embarcado diretamente em aplicações sem dependências externas, ou executado como servidor independente com API REST e interface web
- Escala de dispositivos de borda até grandes clusters de produção
-
Transações e segurança de memória
- Garante transações ACID completas com isolamento de snapshot baseado em MVCC
- Oferece suporte a concorrência estável com a segurança de memória do Rust e o design de fearless concurrency
-
Bindings para múltiplas linguagens
- Suporta Python(PyO3), Node.js/TypeScript(napi-rs), Go(CGO), C(FFI), C#(.NET 8 P/Invoke), Dart(dart:ffi) e WebAssembly(wasm-bindgen)
- O mesmo motor do Grafeo pode ser utilizado em diversos ambientes de linguagem
-
Ecossistema e integrações
- Integra-se com frameworks de IA como LangChain, LlamaIndex e MCP
- Fornece widgets interativos para notebooks, visualização de grafos em WebAssembly no navegador, servidor independente com interface web e ferramentas de benchmarking
Instalação e primeiros passos
-
Comandos de instalação
- Python:
uv add grafeo
- Node.js:
npm install @grafeo-db/js
- Go:
go get github.com/GrafeoDB/grafeo/crates/bindings/go
- Rust:
cargo add grafeo
- .NET:
dotnet add package GrafeoDB
- Dart:
grafeo: ^0.5.21
- WebAssembly:
npm install @grafeo-db/wasm
-
Exemplo de início rápido
- No exemplo em Python, após criar um banco de dados em memória, são adicionados nós e arestas com instruções
INSERT e MATCH, e os relacionamentos são consultados
- No exemplo em Rust, o banco de dados é criado com
GrafeoDB::new_in_memory() e as mesmas consultas são executadas por meio de uma sessão
Licença
- Grafeo é distribuído sob a licença Apache-2.0
1 comentários
Comentários do Hacker News
Fiquei curioso para saber se o Grafeo implementou o benchmark LDBC
Queria compará-lo com outros bancos de dados de grafos. Principalmente, tenho curiosidade sobre o desempenho de consultas OLAP
Artigo relacionado: Neo4j alternatives in 2026
Recentemente publicamos a sintaxe cypher para gfql
Este é o primeiro motor de consultas cypher OSS baseado em CPU/GPU que pode ser executado diretamente sobre dataframes
É usado principalmente junto com bancos de dados escaláveis como Databricks ou Splunk para segurança, detecção de fraude, análise de eventos e pipelines de embeddings de ML+AI
Sem instalar um banco de dados, ele pode processar mais de 1 bilhão de arestas por segundo com uma única GPU, e também pode ser aplicado diretamente a dados em Apache Arrow ou Parquet
Veja a documentação de benchmark do GFQL
O núcleo vetorizado já atende a mais da metade do TCK, e atualmente estamos adicionando as partes mais complexas
Já é usado em produção por várias organizações, incluindo OTAN, bancos e o governo dos EUA, e agora foi liberado como open source para que outros desenvolvedores ou LLMs possam utilizá-lo diretamente
Gostaria de saber se alguém conhece este BD (Grafeo)
Pelo histórico de commits, parece quase um projeto escrito por IA. Uma pessoa fez commits de 100 mil a 200 mil linhas por semana
Nesses casos, muitas vezes a qualidade do código é frágil ou excessivamente complexa
Queria saber se alguém realmente usa isso, ou se é apenas um experimento de portfólio com IA
A versão inicial foi uma reestruturação de um banco de dados de grafos local chamado Graphos, que eu mesmo fiz
O engine, o core, os bindings em Python e os testes foram escritos manualmente, e a documentação e parte da configuração foram geradas por IA
Revisei as partes feitas por IA, mas elas ainda não estão em nível de produção
Comecei inspirado pela minha insatisfação com o Neo4j e por uma conversa com Hännes, do DuckDB
Como o uso de memória do LadybugDB era alto demais, resolvi fazer o meu, e por enquanto estou satisfeito e usando pessoalmente
Não há objetivo comercial; publiquei como open source e contribuições são bem-vindas
Em engines de grafos, o importante é um projeto minucioso, então me preocupo com a qualidade do design nos detalhes
Até no gdotv.com que eu mantenho está ficando cada vez mais difícil decidir quais devo suportar
Há bancos de grafos demais e isso estava confuso, então criei o novo site gdb-engines.com
Classifiquei e organizei cada banco de dados
Fico curioso se existem de fato bancos de grafos confiáveis em escala de produção
Gostaria de saber sobre open source ou produtos de fornecedores, excluindo casos especiais como o TAO da Meta
Trato desse tema na minha palestra da FOSDEM 2025
A maioria dos bancos OSS segue em algum grau um modelo open-core
Artigo relacionado: A brief history of graphs at Facebook
Especialmente tecnologias como JanusGraph, que já existem há bastante tempo, mas continuam sendo usadas de forma consistente por empresas
Hoje já existem 25 bancos de grafos surfando a onda do boom de IA/LLM
Se for escrito em Rust ganha atenção no HN, mas o LadybugDB decidiu não seguir por esse caminho
Em vez disso, quer focar em melhorias incrementais e em um Cypher fortemente tipado
Discussão relacionada: LadybugDB Discussion #141
Isso deve ser avaliado com fundamentação técnica, não como mera “emoção”
O Grafeo é claramente um projeto escrito com auxílio de IA
Tem muito código, mas não parece um simples artefato gerado por IA, e o design também é único
Os testes em JS parecem totalmente gerados por IA, e a qualidade de alguns sub-repositórios varia bastante
A licença Apache 2.0 e os recursos são interessantes, mas parece precisar de mais mantenedores
Fico curioso sobre quais são as diferenças em relação ao Helix DB
E também questiono por que seria necessário consultar o BD com GraphQL
A expressão “testamos o benchmark LDBC com graph-bench” soa como se fosse um benchmark independente
Se for uma ferramenta feita por vocês, seria melhor deixar isso claro e receber feedback para que outros projetos também possam ser comparados de forma justa
É um padrão típico desses codebases gerados por IA que têm aparecido com frequência no HN ultimamente
Se há mais de 100 mil linhas commitadas por semana, é improvável que um humano esteja realmente entendendo bem o conteúdo do código
Testei o Grafeo e a biblioteca relacionada grafeo_langchain junto com um modelo local do Ollama
O resultado foi algo como meio sucesso
Ainda gosto e continuo usando o banco de grafos Kuzu baseado em Python
O Kuzu não é mais desenvolvido, mas como é estável continuamos mantendo o suporte
A migração para o LadybugDB (fork principal) também é fácil, então vale considerar