A simple Go-powered graph and spatial database.
Go PHP
Permalink
Failed to load latest commit information.
.gitignore
API.md
IDEAS.md
LICENSE
README.md
db.go
make-node-map.php
visualize.php

README.md

SIGIL

A simple graph and spatial database, version 0.1.

This is supposed to be just a very simple database of graphs and spatial information, accessible via a REST interface.

warning

This is still in very, very early development. It's usable, but the internals of the project may change.

how to use

Note: these instructions were written with the intention of being used on a Mac via Terminal, or on a Debian/Ubuntu box via Bash. I don't yet know how to do all of this on Windows.

First, set up your Go working directory:

mkdir sigil
cd sigil

Next, set your $GOPATH to this working directory (you'll need this to install the gorest package later):

export GOPATH=`pwd`

Next, create the necessary working directory subdirectories (based on the how to write Go code document):

mkdir src pkg bin

Okay cool -- now clone in this repo to the src/ directory:

git clone git@github.com:cyle/sigil.git src/

Right now this primarily relies on the gorest third-party package. To install it, do:

go get code.google.com/p/gorest

That should be it for installing things. Now to run this database:

cd src/
go run db.go

That's it... go to http://localhost:8777/ to see if it's working. That'll be your API endpoint.

populate it with a demo database

If you have the PHP CLI installed, you can run:

php make-node-map.php

which will populate the database with a simple test graph. To save it, go to a browser and hit http://localhost:8777/save

check out how the database looks

If you have a web server with PHP running on your development box, you can put the visualize.php page somewhere and use that to get an HTML5 Canvas-drawn visualization of your graph database. (Adding 3D support with something like three.js may come someday.)

API documentation

To use the graph database in an application, visit the API doc. Please note that I'll probably be updating this database faster than the API documentation.

clients

Currently, I have only written two clients:

why make this?

I liked the ideas of neo4j but I hate Java. And I want to build something that needs a simple graph database component.

why "SIGIL"?

I tried coming up with some kind of acronym for "simple graph and spatial database" (SGSDB? lame) and I just thought of calling it SIGIL instead. No reason other than that.