neo4j
Neo4j Bolt driver for Python
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
Official Python driver for connecting to and querying Neo4j graph databases using the Bolt protocol, with support for both synchronous and asynchronous operations.
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
pip
pip install neo4juv
uv add neo4jpoetry
poetry add neo4jInstalling neo4j
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.
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"])
Requires a running Neo4j server instance; connection URI and authentication credentials must be provided.
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 — pytz |
| 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) |
Evidence: neo4j-6.2.0-py3-none-any.whl
Keywords: neo4j, graph, database
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
FalkorDBFalkorDB Python client for querying and…
permissive · top 15,000 on PyPI
neo4j-driverPython driver for connecting to and querying…
permissive · top 15,000 on PyPI
neo4j-rust-extRust-compiled extensions that accelerate the…
permissive · top 15,000 on PyPI
py2neo-historyProvides access to archived versions of the…
permissive · top 15,000 on PyPI
py2neoPy2neo is a Python client library for Neo4j…
permissive · top 15,000 on PyPI
neomodelAn Object Graph Mapper (OGM) for Neo4j that…
permissive · top 15,000 on PyPI
graphlibProvides a Python API for creating,…
permissive · top 15,000 on PyPI
graphdatascienceA Python client for Neo4j Graph Data Science…
permissive · top 15,000 on PyPI
neo4j-graphragBuilds graph retrieval-augmented generation…
permissive · top 15,000 on PyPI
python-arangoPython driver for ArangoDB that provides…
permissive · top 5,000 on PyPI