FUCKING PATCHED SURREALDB BECAUSE TOKIO GUHHHHH
Find a file
Tobie Morgan Hitchcock caf2bab84f Add initial README doc
2016-07-05 19:46:22 +01:00
build Fix build tags 2016-03-18 16:19:09 +00:00
cli Fix bug with certificates 2016-07-04 20:56:10 +01:00
cnf Update command line options 2016-07-04 11:33:23 +01:00
db Update db package for alpha testing 2016-07-04 11:37:29 +01:00
docs Update documentation 2016-07-04 11:28:26 +01:00
gui Update README 2016-07-05 19:45:32 +01:00
kvs Enable specifying database file path 2016-06-15 13:38:55 +01:00
log Use abcum log package 2016-07-04 11:33:59 +01:00
sql Update sql package for alpha testing 2016-07-04 11:37:37 +01:00
tcp Add basic tcp package 2016-07-04 11:35:40 +01:00
util Add package for manipulating database item 2016-07-04 11:36:18 +01:00
web Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
.dockerignore Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
.editorconfig Add editorconfig file 2016-04-04 10:14:38 +01:00
.gitignore Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
.go-version Add default go version 2016-02-26 16:18:58 +00:00
circle.yml Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
Dockerfile Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
glide.lock Fix glide dependencies 2016-07-04 12:29:27 +01:00
glide.yaml Update glide 2016-07-04 12:16:38 +01:00
LICENSE Add correct copyright notice 2016-05-11 19:07:10 +01:00
main.go Update cli commands 2016-04-08 20:29:13 +01:00
Makefile Store ember app in 'app' folder 2016-07-05 00:57:00 +01:00
README.md Add initial README doc 2016-07-05 19:46:22 +01:00

Surreal

Surreal is a scalable, distributed, strongly-consistent, collaborative document-graph database.

Features

  • NoSQL document-graph database written in Go
  • Administrative database tools
    • Easily import data into a cluster
    • Easily export data from a cluster
    • Accessible and intuitive web interface
  • Multiple connection methods
    • Connect using REST
    • Connect using JSON-RPC
    • Connect using Websockets
  • Multiple data querying methods
    • Use advanced SQL queries
    • Query using REST url endpoints
    • Query using Websocket methods
  • Customisable authentication access
    • Specify public or private access
    • Admin access to all database data
    • Token access to all database data
    • End-user multi-tenancy authentication
  • Flexible data manipulation queries
    • Automatic creation of tables
    • Sceha-less or schema-full tables
    • Automatic data field sanitization
    • Mandatory, and readonly data fields
    • Define embedded fields, and object arrays
  • Advanced customisable indexing support
    • Single-column indexs
    • Multiple-column indexes
    • Indexing of embedded data fields
    • LUA/JS scripting for custom indexes
    • Full-text indexing of all data by default
  • Collaborative editing and manipulation of data
    • Live realtime queries
    • Publish data changes
    • Subscribe to data changes
    • Built-in concurrency control
    • Pub/sub over websocket for data updates
  • Encryption out-of-the-box as standard
    • End-to-end intra-cluster communications
    • End-user SSL encryption for http endpoints
    • Encryption of all data at rest using AES-256
    • Encryption of individual data items using AES-256

Installation

go get github.com/abcum/surreal

Running

surreal start --port-web 8000

Clustering

surreal start --port-web 8000 --port-tcp 33693 --join localhost:33693
surreal start --port-web 8001 --port-tcp 33694 --join localhost:33693
surreal start --port-web 8002 --port-tcp 33695 --join localhost:33693

Deployment

docker run --name surreal-1 abcum/surreal start --port-web 8000 --port-tcp 33693 --join localhost:33693
docker run --name surreal-2 abcum/surreal start --port-web 8001 --port-tcp 33694 --join localhost:33693
docker run --name surreal-3 abcum/surreal start --port-web 8002 --port-tcp 33695 --join localhost:33693