Documentation

Install without Rust

Docker

docker run --rm -p 127.0.0.1:7475:7475 -p 127.0.0.1:7687:7687 ghcr.io/janvencl/graphbuff --demo movies
curl -s http://127.0.0.1:7475/query -H 'Content-Type: application/json'      -d '{"query": "MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p.name, m.title"}'

The image ghcr.io/janvencl/graphbuff (tags: latest and each version, such as 0.1.0; linux/amd64 and linux/arm64) runs graphbuff-server --bind 0.0.0.0:7475 --bolt 0.0.0.0:7687 as an unprivileged user; anything after the image name is added to that command line. --demo movies loads the graph of examples/movies.cypher, which is compiled into the binary, into the default database (unless it already holds data).

Inside the container the server has to listen on every interface, so it warns that it has no --token. Who can reach it is decided by -p: -p 127.0.0.1:7475:7475 publishes the port to this machine only, which is what makes the command above safe. To publish it to other machines (-p 7475:7475), set a token or user accounts:

docker run --rm -p 7475:7475 -p 7687:7687 -e GRAPHBUFF_TOKEN=s3cret ghcr.io/janvencl/graphbuff

Data lives in memory unless --data is given; /data is a volume for it:

docker run -d --name graphbuff -p 127.0.0.1:7475:7475 -p 127.0.0.1:7687:7687        -v graphbuff-data:/data ghcr.io/janvencl/graphbuff --data /data
docker exec -it graphbuff graphbuff --help      # the shell binary is in the image too

Build the image yourself with docker build -t graphbuff ..

Prebuilt binaries

Each release carries one archive per platform, with graphbuff (shell) and graphbuff-server inside a folder graphbuff-VERSION-PLATFORM/:

Platform Archive
Linux x86-64 (static, any distribution) graphbuff-linux-x86_64.tar.gz
macOS Apple silicon graphbuff-macos-arm64.tar.gz
macOS Intel graphbuff-macos-x86_64.tar.gz
Windows x86-64 graphbuff-windows-x86_64.zip

and SHA256SUMS with the checksums of all four. The file names carry no version, so https://github.com/JanVencl/graphbuff/releases/latest/download/graphbuff-linux-x86_64.tar.gz always points at the newest release (a specific one: .../releases/download/v0.1.0/...).

curl -LO https://github.com/JanVencl/graphbuff/releases/latest/download/graphbuff-linux-x86_64.tar.gz
tar -xzf graphbuff-linux-x86_64.tar.gz
./graphbuff-*/graphbuff-server --demo movies    # http://127.0.0.1:7475

The binaries are plain builds: no gpu and no tls feature. Releases are cut by pushing a tag vX.Y.Z that matches the workspace version (release.yml).

Try it on your machine: one command starts the server with the movies graph. Needs Docker.

$ docker run --rm -p 127.0.0.1:7475:7475 -p 127.0.0.1:7687:7687 ghcr.io/janvencl/graphbuff --demo movies

Then follow Getting started.