FUCKING PATCHED SURREALDB BECAUSE TOKIO GUHHHHH
Find a file
Tobie Morgan Hitchcock e073bf2775 Enable persistent request variables
It is now possible to set a variable on a connection, and use that variable in multiple subsequent queries. This ensures that websockets can make use of state variables for detecting logged-in, and non-logged-in clients.
2018-02-12 22:13:36 +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 Add support for mysql as a backend kv store 2018-02-11 00:16:28 +00:00
cnf Simplify auth data response on rpc requests 2018-02-12 21:48:55 +00:00
db Enable persistent request variables 2018-02-12 22:13:36 +00:00
doc Use idents not strings in SQL examples 2017-03-03 00:48:03 +00:00
kvs Don’t use readonly transactions for mysql 2018-02-11 16:43:59 +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 LET and RETURN should not need SC level permissions 2018-02-12 15:38:34 +00:00
tcp Listen and wait for errors when server exits 2017-11-16 20:03:38 +00:00
util Add string genrator function to util/rand package 2018-02-12 21:38:08 +00:00
web Enable persistent request variables 2018-02-12 22:13:36 +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-02-11 09:40:15 +00:00
glide.yaml Update 3rd party dependencies 2018-02-11 09:40:15 +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