C graph db server using tokyocabinet & libevent
C Io Objective-C CMake C++ Python Other
Latest commit 37a8678 Jun 4, 2016 @stevedekorte Merge pull request #18 from EarvinKayonga/master
Add Docker Support

README.md

About

Vertex is a high performance graph database that supports automatic garbage collection, built on libevent and tokyocabinet. It uses HTTP as it's communication protocol and JSON as it's response data format. It's BSD licensed and was written by Steve Dekorte and Rich Collins. See docs/manual.html for API and more details.

Status

Currently in production use and working well so far. The API is still not set in stone though.

Usage

Compiling on Mac OS X

sudo port install yajl tokyocabinet libevent libzip
# or if you are using homebrew
brew install yajl tokyo-cabinet libevent
cmake .
make
sudo make install

If all was fine, in build/vertexdb will be bin file

Running

vertexdb -db blog1.db

or as daemon

sudo vertexdb -db /opt/database -d --pid /var/run/vertex.pid

Possible options:

--database <file> -db <file> Database file
--port <num>      -p <num>   TCP port number to listen on (default: 8080)
--host <ip>       -H <ip>    Network interface to listen (default: 127.0.0.1)
--daemon          -d         Run as a daemon
--log <file>                 Log file location
--pid <file>                 Pid file location
--debug                      Be more verbose
--hardsync                   Run with hard syncronization
--help            -h         Show this help

Future

May add support for more complex queries and dynamic/automatic index creation based on observed queries.

Dynamic languages support

  • ruby - comming soon (or ask in pm)

Docker Support

If you have Docker installed

You can

build a Docker image and run it in a container

docker build -t vertexdb . # build
docker run -d -p 8080:80 --name myVertexdb vertexdb # running on PORT 8080 (On MAC, the IP address of the container is given via Kitematic)

or get a Image of vertex directly from the Docker Hub

docker run -d  -p 8080:80 -e OPTS="" --name myVertexdb earvin/vertexdb 

OPTS could be

  • "--hardsync",
  • "--debug",
  • both or ""