Seabolt is the C Connector Library for Neo4j. The library supports multiple versions of the Bolt protocol through the new Connector API and will provide a base layer for a number of language drivers.
- Install runtime dependencies
# you can also choose to install libssl1.1
sudo apt-get install -y libssl1.0.0
- Fetch the latest package (check here for latest releases)
wget https://github.com/neo4j-drivers/seabolt/releases/download/v1.7.3/seabolt-1.7.3-Linux-ubuntu-$(lsb_release -rs).deb
-
(optional) Check the sha256 hash of the download matches the published hash
-
Install the package and clean up
dpkg -i seabolt-1.7.3-Linux-ubuntu-$(lsb_release -rs).deb
rm seabolt-1.7.3-Linux-ubuntu-$(lsb_release -rs).deb
This project requires the following tools/libraries to be installed in order to be built. General installation instructions can be found in the following sections.
- CMake >= 3.12
- For non-Windows systems OpenSSL Development Libraries (must include static libraries)
- Install all required components via
apt install git build-essential cmake libssl-dev
- Install XCode,
- Install XCode Command Line Tools via
xcode-select --install
- Install CMake
brew install cmake
- Install OpenSSL
brew install openssl
- Create an environment variable named
OPENSSL_ROOT_DIR
that points to the openssl library installation path (default is/usr/local/opt/openssl
)
- Install Visual Studio 2017 with VC++ support
- Install CMake via
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System'
- Install MSYS2 from
https://www.msys2.org/
- Be sure to install a mingw toolchain into MSYS2 (you can use the following command
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain git subversion mercurial mingw-w64-i686-cmake mingw-w64-x86_64-cmake
)
- Be sure to install a mingw toolchain into MSYS2 (you can use the following command
To build the project, run either the make_debug.sh
or the make_release.sh
script from the project root directory.
This will compile and deposit project artifacts in the build/dist
directory.
To create distributable packages, invoke cpack
in build
directory (after make_debug.sh
or make_release.sh
is completed) and all binary package artifacts will be placed in build/dist-package
directory.
To build the project, run either the make_debug.cmd
or the make_release.cmd
script from the project root directory with MINGW
as its first argument.
This will compile and deposit project artifacts in the build/dist
directories.
make_[debug|release].cmd MINGW
To create distributable packages, invoke make.cmd
with your preferred arguments and all binary package artifacts will be placed in build/dist-package
directory.
make.cmd MINGW [Debug|Release] x64 package
To build the project, run either the make_debug.cmd
or the make_release.cmd
script from the project root directory with MSVC
as its first argument.
This will compile and deposit project artifacts in the build/dist
directories.
make_[debug|release].cmd MSVC
To create distributable packages, invoke make.cmd
with your preferred arguments and all binary package artifacts will be placed in build/dist-package
directory.
make.cmd MSVC [Debug|Release] x64 package
To build the docs, the make_docs.sh
script is available.
The docs build process uses Sphinx, Breathe and Doxygen.
These can be installed as follows:
$ sudo apt install doxygen
$ pip install --user sphinx breathe
To run a query, use the following...
BOLT_PASSWORD=password build/bin/seabolt-cli run "UNWIND range(1, 1000000) AS n RETURN n"
By default, this will simply display stats for the query execution. The following environment variables can be used:
BOLT_ROUTING=0|1
BOLT_ACCESS_MODE=WRITE|READ
BOLT_SECURE=0|1
BOLT_HOST=<host name, IPv4 or IPv6 address>
BOLT_PORT=7687
BOLT_USER=neo4j
BOLT_PASSWORD=password
BOLT_LOG=0|1|2
To run a query, use the following...
$env:BOLT_PASSWORD=password
build/bin/(Debug|Release)\seabolt-cli.exe run "UNWIND range(1, 1000000) AS n RETURN n"
By default, this will simply display stats for the query execution. The following environment variables can be used (with Powershell syntax):
$env:BOLT_ROUTING=0|1
$env:BOLT_ACCESS_MODE=WRITE|READ
$env:BOLT_SECURE=0|1
$env:BOLT_HOST=<host name, IPv4 or IPv6 address>
$env:BOLT_PORT=7687
$env:BOLT_USER=neo4j
$env:BOLT_PASSWORD=password
$env:BOLT_LOG=0|1|2