MyCrud
MyCRUD is an opensource web/app-friendly key-value database, with:
- Simple and easy to use HTTP-API:
PUT /$db/$key
creates/updates value. (Optionally pass previous version as parameter for create/update with conflict detection.)GET /$db/$key
reads value. (Returns version in ETag)DELETE /$db/$key
deletes value.GET /$db?$query
finds keys in given range (query example:?gte=bar<=foo
), or by modification time (query example:?since=2020-07-30T17:30:00
). Also supports waiting for query result to be non-empty, which can be used for realtime synchronization, signalling, etc.
- Built-in access control and CORS, such that it can be used directly from web/apps. (Token is passed to the API with
Authorization: Bearer...
-header)- External authentication servers can manage permissions and tokens. (This is done by updating the JSON-objects in the special
_db
and_token
databases. OAuth2-pkce external authentication server is on the roadmap)
- External authentication servers can manage permissions and tokens. (This is done by updating the JSON-objects in the special
- Timestamped values, which allows compare-and-set atomicity, incremental backup, synchronised offline apps, etc.
- Node.js server, with different storage backends: MySQL, SQLite3 and LevelDB. (PHP implementation with MySQL as backend is on the roadmap)
- API design is based on Level. (A level compatible adaptor is on the roadmap)
Source code, and more details can be found on https://gitlab.com/solsort/mycrud.