FUCKING PATCHED SURREALDB BECAUSE TOKIO GUHHHHH
Find a file
Tobie Morgan Hitchcock d5604f589c Add package for memory storage of database runtime
Database configuration data for all namespaces, databases, logins, tokens, scopes, tables, fields, indexes should be stored in memory for quick access when needed without querying the KV store.

It should be kept in sync with the master data in the unerlying KV store, but it can be used for propagating the database configuration across the cluster.
2016-11-21 18:47:23 +00:00
build Fix build tags 2016-03-18 16:19:09 +00:00
cli Remove unused zone command line flag 2016-11-21 16:34:33 +00:00
cnf No need for global authentication token 2016-11-17 08:47:46 +00:00
db Enable public method for running sql query 2016-11-21 14:36:37 +00:00
doc Remove unused specification doc [ci skip] 2016-11-04 12:18:46 +00:00
gui Update README 2016-10-14 07:40:41 +01:00
kvs Use uint64 as limit in mysql backend connector 2016-11-17 14:18:11 +00:00
log Use abcum log package 2016-07-04 11:33:59 +01:00
mem Add package for memory storage of database runtime 2016-11-21 18:47:23 +00:00
sql Remove POLICY from SQL DEFINE SCOPE statement 2016-11-21 18:43:15 +00:00
tcp Encrypt serf communications 2016-07-18 23:02:10 +01:00
util Add subqueries, subexpressions, and paths to SQL 2016-11-04 09:58:11 +00:00
web Save with go fmt simplified 2016-11-16 17:31:25 +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 Update gitognore to ignore generated files 2016-09-19 13:33:05 +01:00
.go-version Add default go version 2016-02-26 16:18:58 +00:00
circle.yml Improve make tasks 2016-09-28 18:07:08 +01:00
Dockerfile Store ember app in 'app' folder 2016-07-05 00:03:48 +01:00
glide.lock Update 3rd party dependencies 2016-11-20 09:28:13 +00:00
glide.yaml Use cork serialization for data storage 2016-10-02 00:17:19 +01:00
LICENSE Add correct copyright notice 2016-05-11 19:07:10 +01:00
main.go Disable trace profiling so tests work on CircleCI 2016-09-30 15:57:36 +01:00
Makefile Add dependency update command to Makefile 2016-10-16 11:43:45 +01:00
README.md Update README 2016-09-14 18:05:52 +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
    • 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 boltdb://surreal-1.db --join localhost:33693 --log-level debug
surreal start --port-web 8001 --port-tcp 33694 --db-path boltdb://surreal-2.db --join localhost:33693 --log-level debug
surreal start --port-web 8002 --port-tcp 33695 --db-path boltdb://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