Bolt Protocol
The Bolt network protocol is a highly efficient, lightweight client-server protocol designed for database applications.
The protocol is statement oriented, allowing a client to send statements, each consisting of a single string and a set of typed parameters. The server responds to each request with a result message and an optional stream of result records.
This documentation describes the various versions of the Bolt Protocol, for the use by anyone implementing client or server applications. It is licensed under Creative Commons 3.0 Attribution-ShareAlike, and was originally authored by the team behind the Neo4j graph database.
The current version is Protocol Version 1.
Contributing
Bolt is a non-standardized open source protocol and contributions are encouraged.
For discussion of the Bolt protocol, please join the Mailing list.
Contributions to this website and the documentation can be made via the GitHub project.
Connection
All versions of the Bolt Protocol operate over a TCP connection or WebSocket, with an optional TLS encapsulation. The recommended default port is 7687.
Protocol version negotiation
All connections will begin with protocol version negotiation, described in the handshake documentation.
Implementations
This is a non-exhaustive list of known implementations:
Clients
Command Line Interface (CLI) / Shell client |
||
Command Line Interface (CLI) / Shell client |
||
Web-based command client and visualization |
||
Java driver library |
||
A Neo4j Object Graph Mapping Library for Java |
||
Javascript driver library |
||
Javascript library handling cypher queries as node object streams |
||
Microsoft .NET driver library |
||
Python driver library |
||
Neo4j client library and toolkit for Python |
||
A Python Object Graph Mapper (OGM) |
||
Ruby driver library |
||
PHP driver library |
||
C/C++ driver library |
||
Elixir driver library |
||
Haskell driver library |
Servers
Version 1, with exceptions.[neo4j#8050] |