FUCKING PATCHED SURREALDB BECAUSE TOKIO GUHHHHH
Find a file
Tobie Morgan Hitchcock 84b72e25d2 Don’t use of ClrL, GetL, DelL, PutL methods on KV store
Remove the need to query a particular KV level, and instead use slightly different encoded keys, and use prefix based iteration. This means we can use different KV stores to give the same functionality, without needing to use hierarchical KV stores.
2018-02-09 15:08:27 +00:00
.circleci Improve circleci config file 2017-11-16 20:21:55 +00:00
build Fix build tags 2016-03-18 16:19:09 +00:00
cli Enable customisable file size policies for storage backends 2018-01-12 11:10:11 +00:00
cnf Enable customisable file size policies for storage backends 2018-01-12 11:10:11 +00:00
db Don’t use of ClrL, GetL, DelL, PutL methods on KV store 2018-02-09 15:08:27 +00:00
doc Use idents not strings in SQL examples 2017-03-03 00:48:03 +00:00
kvs Don’t use of ClrL, GetL, DelL, PutL methods on KV store 2018-02-09 15:08:27 +00:00
log Update to latest cloud.google.com package 2017-11-15 18:18:52 +00:00
mem Don’t use of ClrL, GetL, DelL, PutL methods on KV store 2018-02-09 15:08:27 +00:00
sql Parse times and records within json content 2018-01-10 13:17:50 +00:00
tcp Listen and wait for errors when server exits 2017-11-16 20:03:38 +00:00
util Don’t use of ClrL, GetL, DelL, PutL methods on KV store 2018-02-09 15:08:27 +00:00
web Improve error messages on authentication failure 2018-01-31 08:52:21 +00:00
.dockerignore Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
.editorconfig Update editorconfig 2016-10-01 20:18:49 +01:00
.gitignore Enable adding generated source files to git 2017-03-20 16:08:20 +00:00
Dockerfile Improve Dockerfile 2017-11-16 20:23:13 +00:00
glide.lock Update 3rd party dependencies 2018-01-12 10:55:14 +00:00
glide.yaml Ensure ranges are iterated over correctly 2017-12-05 01:12:12 +00:00
LICENSE Add correct copyright notice 2016-05-11 19:07:10 +01:00
main.go Set GOMAXPROCS at runtime to CPU number 2016-11-26 13:39:48 +00:00
Makefile No need for verbose output on with cli tests 2017-11-24 20:11:37 +00:00
README.md Update README for use with rixxdb/dendrodb 2017-02-20 10:44:42 +00: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
    • Schema-less or schema-full tables
    • Automatic data field sanitization
    • Mandatory, readonly, and validated data fields
    • Define embedded fields, and object arrays
  • Advanced customisable indexing support
    • Single-column indexes
    • Multiple-column indexes
    • Multiple-compound indexes
    • Indexing of embedded data fields
    • JS/LUA 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

Installation

go get github.com/abcum/surreal

Running

surreal start --port-web 8000

Clustering

surreal start --port-web 8000 --port-tcp 33693 --db-path file://surreal-1.db --join localhost:33693 --log-level debug
surreal start --port-web 8001 --port-tcp 33694 --db-path file://surreal-2.db --join localhost:33693 --log-level debug
surreal start --port-web 8002 --port-tcp 33695 --db-path file://surreal-3.db --join localhost:33693 --log-level debug

Deployment

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