https://github.com/bloq/unisrv
Universal database server and tool
https://github.com/bloq/unisrv
dbm gdbm json-rpc rest-api rocksdb
Last synced: about 1 year ago
JSON representation
Universal database server and tool
- Host: GitHub
- URL: https://github.com/bloq/unisrv
- Owner: bloq
- License: mit
- Created: 2018-02-09T14:35:16.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-09T16:31:41.000Z (about 8 years ago)
- Last Synced: 2025-01-14T12:13:43.743Z (over 1 year ago)
- Topics: dbm, gdbm, json-rpc, rest-api, rocksdb
- Language: C++
- Homepage:
- Size: 53.7 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
# Unisrv: Universal NoSQL database server
Unisrv is a database server: a microservice that exports local
filesystem databases over a network. It is the swiss army knife of
db services.
Unisrv can export a gdbm database over HTTP REST, a rocksdb database
over JSON-RPC, and more. You can mix and match database type, network
protocol interface and authentication methods.
## Configuration
See [configuration documentation](configuration.md) for details.
## Logging
Log output is sent to the console (stderr) and Unix syslog service.
## Supported database types
The following database types are supported:
* gdbm
* Rocksdb
## Supported network protocols
You may export the database via any number of network protocols:
* REST over HTTP
* JSON-RPC over HTTP
### HTTP endpoint sharing
Multiple HTTP paths at the same HTTP endpoint are supported; for example
http://127.0.0.1:8989/data/mydata
might export a gdbm database, while the same HTTP endpoint may also
export a separate dataset from rocksdb at
http://127.0.0.1:8989/rocks
## Dependencies
* C++ compiler
* OpenSSL
* One or more database libraries
* libevhtp: https://github.com/criticalstack/libevhtp
## Building and installing
This uses the standard autotools pattern for building C++ programs:
$ ./autogen.sh
$ CXXFLAGS="-O2 -Wall -g -I/usr/local/include/evhtp" ./configure
$ make # compile
$ make check # run tests
$ sudo make install # install on system