
memgraph 通过兼容 neo4j 的 bolt 协议(v1/v4)提供多语言客户端支持,官方维护 python、c/c++、rust 原生驱动,并广泛兼容主流语言的 neo4j 官方 bolt 驱动,如 java、node.js、go、c# 等。
memgraph 通过兼容 neo4j 的 bolt 协议(v1/v4)提供多语言客户端支持,官方维护 python、c/c++、rust 原生驱动,并广泛兼容主流语言的 neo4j 官方 bolt 驱动,如 java、node.js、go、c# 等。
Memgraph 是一个高性能实时图数据库,其客户端生态以 Bolt 协议为核心通信标准。Bolt 是一种二进制、流式、低开销的网络协议,专为图数据库高效交互设计。Memgraph 完整支持 Bolt 协议 v1 和 v4(兼容 Neo4j 3.5+ 及 5.x 的驱动行为),这意味着您不仅可使用 Memgraph 官方维护的原生驱动,还能无缝接入大量成熟的 Neo4j 社区驱动。
✅ 官方原生支持(由 Memgraph 团队开发与维护):
-
Python:
pymgclient(轻量级底层驱动)及高级 ORM 框架GQLAlchemy(推荐用于应用开发) -
C/C++:
mgclient,适用于嵌入式场景或高性能 C 服务集成 -
Rust:
rsmgclient,具备零成本抽象与内存安全特性
✅ 社区兼容驱动(经 Memgraph 官方验证可用):
以下 Neo4j 官方或主流社区维护的 Bolt 驱动均可直接连接 Memgraph(无需修改代码,仅需配置正确端口 7687 和认证信息):
-
Node.js / JavaScript:
neo4j-javascript-driver -
Java:
neo4j-java-driver -
Go:
neo4j-go-driver -
C# (.NET):
neo4j-dotnet-driver -
PHP:
neo4j-php/Bolt -
Ruby:
neo4jrb/neo4j -
Haskell:
hasbolt
? 使用示例(Node.js):
const neo4j = require('neo4j-driver');
const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('username', 'password'));
async function runQuery() {
const session = driver.session();
try {
const result = await session.run('MATCH (n) RETURN count(n) AS nodeCount');
console.log('Node count:', result.records[0].get('nodeCount').toInt());
} finally {
await session.close();
}
}⚠️ 注意事项:
- Memgraph 不支持 HTTP/REST 接口原生查询(仅提供有限的管理 REST API,如
/status、/query调试端点),生产环境请始终使用 Bolt; - 连接时请确保启用 Bolt(默认开启),并在
memgraph.conf中确认--bolt-server=ON及端口未被防火墙拦截; - 认证方式支持
basic(用户名/密码)和无认证模式(--authentication=OFF),生产环境务必启用强密码策略; - 部分驱动(如旧版 Java Driver v4.x)可能默认启用加密,而 Memgraph 默认不启用 TLS —— 若需加密,请显式配置
encrypted: "ENCRYPTION_OFF"或部署反向代理(如 nginx + TLS 终止)。
综上,无论您使用 Python 构建图分析服务、用 Rust 开发高性能中间件,还是在现有 Java/Spring 应用中集成图能力,Memgraph 均可通过统一、稳定的 Bolt 协议提供开箱即用的支持。建议优先选用官方驱动以获得最佳性能与新特性同步,同时充分利用 Neo4j 生态的丰富文档与工具链。


















