Properties

Last built 9 months ago using go version go1.6.2 linux/amd64 and 146 seconds of time

Downloads
Filename
File Size
 
summadb_master_darwin-386.zip
2.9MiB
summadb_master_darwin-amd64.zip
3.1MiB
summadb_master_linux-386.zip
2.9MiB
summadb_master_linux-amd64.zip
3.1MiB
summadb_master_linux-arm.zip
2.8MiB
summadb_master_windows-386.zip
2.9MiB
summadb_master_windows-amd64.zip
3.1MiB
Project-Readme for this version

SummaDB Travis-CI build status

SummaDB is a CouchDB-inspired open source hierarchical database with infinitely nested sub-databases, all those independently syncable with PouchDB. It offers a full-blown REST interface similar to CouchDB (with PUT calls that can be pointed to any leaf of the hierarchical tree and a PATCH method for multiple arbitrary leaf updates) and a GraphQL read-only query interface

Features

  • [x] Simple, CouchDB-like, HTTP API
  • [x] PouchDB syncing
  • [x] Supports fine-grained document updates with PATCH
  • [x] Every document is also a database
  • [x] GraphQL read queries
  • [ ] CouchDB-like map functions, implemented at each sub database level and run in the background
  • [ ] Changes feed at each hierarchy level
    • [x] Static
    • [ ] Published continuously
      • [ ] long-polling
      • [ ] websockets
      • [ ] webhooks (maybe)
  • [ ] /_format/fn endpoint (maybe)
  • [ ] Users
    • [x] User accounts for REST access
    • [x] Basic HTTP Auth
    • [x] ACLs with read, write and admin access at each hierarchy level
    • [x] Users tied to each sub database, instead of only at root
    • [ ] JWT sessions
  • [ ] Websocket server compatible with socket-pouch (maybe)

Demo

You can see SummaDB in action right now, without installing anything. There is

Installing

go get github.com/fiatjaf/summadb

Then run it with summadb (summadb --help will show you some options).

There are also binaries that probably work at https://gobuilder.me/github.com/fiatjaf/summadb.

Notice

This is pre-alpha, or whatever you want to call something that is in development by a single man and looking for feedback. Please give feedback, or use it and find bugs, or fix bugs. Or, better, if you have some experience with Go or databases, look at the code, find my stupid rookie mistakes and help me fix them. Thank you very much.