ICouch is a CouchDB client for Elixir using ibrowse for HTTP transfer.
JSON encoding/decoding is provided by Poison.
ICouch claims to be more "Elixir Style" than other implementations based on couchbeam and offers a more rigid changes follower tested against vanilla CouchDB and Cloudant. That said, many calls might look and behave similarly like couchbeam's since the intent is often the same. However, parameter order and types will differ in most cases; most notably maps are used instead of JSON keyword lists.
Another innovation is, that documents are represented as Elixir structs. These offer a way to conveniently manage attachments in binary form and also implement the Access behavior and Enumerable protocol for easy handling of a document's fields.
This project is currently in beta phase.
ToDo's:
- Implement view streaming
- Implement one-shot changes streaming
- Finish documentation
- Write more tests
Add ICouch to your list of dependencies in mix.exs
:
def deps do
[{:icouch, "~> 0.5"}]
end
(todo)
Patrick Schneider / MeetNow! GmbH
Copyright (c) 2017,2018 MeetNow! GmbH
ICouch source code is released under Apache 2 License.
Check the LICENSE file for more information.