neo4j
Neo4j Bolt driver for Python
Decision gist · record as of 2026-08-14
Yes. This is the official, actively maintained driver for Neo4j in Python, with low install friction, permissive licensing, no known vulnerabilities, and broad Python version support. Install it if you need to connect to a Neo4j database; it is the standard choice for that task.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a running Neo4j server instance; connection URI and authentication credentials must be provided.
- Low friction installation as a pure Python wheel.
- Actively maintained with recent commits and a stable production release cycle; supports current Python versions (3.10–3.14).
License · maintenance · safety
Apache-2.0 AND Python-2.0 (permissive) — Dual-licensed under Apache-2.0 and Python-2.0 (permissive). Safe for commercial and open-source use with minimal attribution requirements.
last release 2026-05-04 (102 days) · last repo commit 2026-07-21 · 1,049 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 14,903,559 downloads/mo, #1,211 on PyPI
Alternatives
Verify before relying
pip install neo4j
from neo4j import GraphDatabase
with GraphDatabase.driver("neo4j://localhost:7687", auth=("neo4j", "password")) as driver:
records, _, _ = driver.execute_query(
"MATCH (a:Person) RETURN a.name"
)
for record in records:
print(record["a.name"])- Whether Rust extensions (neo4j-rust-ext) are available as an optional dependency or must be installed separately.
- Specific performance characteristics or throughput limits compared to direct server access.
What it is and what it does
Neo4j is the official Python driver for the Neo4j graph database, providing a Bolt protocol client for executing Cypher queries and managing graph transactions. It abstracts connection pooling, routing, and session management, allowing developers to focus on query logic rather than protocol details.
The driver supports both synchronous and asynchronous workflows, with a single runtime dependency (pytz) and no compiled dependencies in the base install. It is actively maintained, supports Python 3.10 through 3.14, and carries no known security vulnerabilities. Optional Rust extensions can be installed separately for performance optimization, but the pure Python version is suitable for most use cases.
Use it for
- Building web applications that query a Neo4j graph database for relationship-heavy data like social networks or recommendation engines.
- Executing Cypher queries with parameter binding to retrieve or modify graph nodes and relationships.
- Implementing read-write transaction patterns with automatic connection pooling and failover in production environments.
- Integrating graph database operations into data pipelines or ETL workflows.
- Prototyping graph algorithms and analyses without managing low-level Bolt protocol details.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
This is the official, actively maintained driver for Neo4j in Python, with low install friction, permissive licensing, no known vulnerabilities, and broad Python version support. Install it if you need to connect to a Neo4j database; it is the standard choice for that task.
Install
neo4j on PyPI
Before you install
Low friction installation as a pure Python wheel. Actively maintained with recent commits and a stable production release cycle; supports current Python versions (3.10–3.14). Optional Rust extensions available for performance improvements but not required.
Requires a running Neo4j server instance; connection URI and authentication credentials must be provided.
License in practice
Dual-licensed under Apache-2.0 and Python-2.0 (permissive). Safe for commercial and open-source use with minimal attribution requirements.
Quickstart
pip install neo4j
from neo4j import GraphDatabase
with GraphDatabase.driver("neo4j://localhost:7687", auth=("neo4j", "password")) as driver:
records, _, _ = driver.execute_query(
"MATCH (a:Person) RETURN a.name"
)
for record in records:
print(record["a.name"])
Verify before relying
- Whether Rust extensions (neo4j-rust-ext) are available as an optional dependency or must be installed separately.
- Specific performance characteristics or throughput limits compared to direct server access.
Package facts
| License | Apache-2.0 AND Python-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagepytz |
| Maintenance | Actively maintained 102 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 14,903,559 / month, #1,211 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableFramework :: AsyncIOIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: DatabaseTopic :: Software DevelopmentTyping :: Typed |
Evidence: neo4j-6.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “bolt protocol python”
- neo4jOfficial Python driver for connecting to and querying Neo4j graph…
- neo4j-driverPython driver for connecting to and querying Neo4j graph databases…
- py2neoPy2neo is a Python client library for Neo4j that provides Bolt and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also FalkorDB · neo4j-driver · neo4j-rust-ext · py2neo-history · py2neo · neomodel · graphlib · graphdatascience · neo4j-graphrag · python-arango