neo4j-driver
Neo4j Bolt driver for Python
What it is and what it does
neo4j-driver is the official Python client for Neo4j graph databases, providing synchronous and asynchronous APIs to execute Cypher queries and manage graph data. It implements the Bolt protocol for efficient communication with Neo4j servers and supports modern Python versions from 3.7 through 3.13. The driver handles connection pooling, transaction management, and result streaming automatically.
The package is now deprecated in favor of installing the neo4j package instead, which is a drop-in replacement. However, neo4j-driver continues to receive updates through the 5.x series and will stop receiving updates starting with version 6.0.0. Its single runtime dependency is pytz, keeping the installation lightweight. It is actively maintained with a monthly release cadence aligned with Neo4j DBMS versioning.
Use it for:
- Build Python applications that query and manipulate graph data stored in Neo4j databases.
- Execute Cypher queries with parameters to retrieve or modify relationships and nodes.
- Implement async workflows for non-blocking database operations in concurrent applications.
- Manage connection pooling and transaction semantics automatically in multi-threaded environments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python driver for connecting to and querying Neo4j graph databases using the Bolt protocol, with support for both synchronous and asynchronous operations.
Yes, but with a caveat: this package is deprecated and the project recommends installing neo4j instead, which is a drop-in replacement. If you are starting a new project, install neo4j. If you have existing code using neo4j-driver, it remains functional and actively maintained through version 5.x, but plan a migration to neo4j before version 6.0.0 is released. The driver itself is well-maintained, has no known vulnerabilities, and installs cleanly.
Install
neo4j-driver on PyPI
pip
pip install neo4j-driveruv
uv add neo4j-driverpoetry
poetry add neo4j-driverInstalling neo4j-driver
Before you install
Low friction installation with a single pure-Python wheel dependency (pytz). Actively maintained with monthly release cadence; last commit 2026-07-21. Package is deprecated in favor of the neo4j alias, but continues to receive updates through version 5.x.
License in practice
Apache License 2.0 (permissive) allows commercial and private use with minimal restrictions. Safe for most projects.
Quickstart
pip install neo4j-driver
from neo4j import GraphDatabase
with GraphDatabase.driver("neo4j://localhost:7687", auth=("user", "password")) as driver:
records, _, _ = driver.execute_query("MATCH (n) RETURN n LIMIT 1")
for record in records:
print(record)
Requires a running Neo4j server instance accessible at the specified URI; Python 3.7 or later.
Verify before relying
- Performance characteristics compared to the neo4j alias package (the recommended replacement).
- Whether Rust extensions mentioned in docs are available or required for specific use cases.
Package facts
| License | Apache License, Version 2.0 (permissive) |
| Python support | supports the current Python release (>=3.7) |
| 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 | 104,608/month — #12,743 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: neo4j_driver-5.28.4-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
neo4jOfficial Python driver for connecting to and…
permissive · top 5,000 on PyPI
neo4j-rust-extRust-compiled extensions that accelerate the…
permissive · top 15,000 on PyPI
neomodelAn Object Graph Mapper (OGM) for Neo4j that…
permissive · top 15,000 on PyPI
py2neoPy2neo is a Python client library for Neo4j…
permissive · top 15,000 on PyPI
FalkorDBFalkorDB Python client for querying and…
permissive · top 15,000 on PyPI
py2neo-historyProvides access to archived versions of the…
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