Crate sofa[−][src]
Sofa - CouchDB for Rust
Documentation
Here: http://docs.rs/sofa
Installation
[dependencies]
sofa = "0.6"
Description
This crate is an interface to CouchDB HTTP REST API. Works with stable Rust.
Does not support #![no_std]
After trying most crates for CouchDB in Rust (chill
, couchdb
in particular), none of them fit our needs hence
the need to create our own.
No async I/O (yet), uses a mix of Reqwest and Serde under the hood, with a few nice abstractions out there.
NOT 1.0 YET, so expect changes
Supports CouchDB 2.0 and up.
Be sure to check CouchDB's Documentation in detail to see what's possible.
Running tests
Make sure that you have an instance of CouchDB 2.0+ running, either via the
supplied docker-compose.yml
file or by yourself. It must be listening on
the default port.
And then
cargo test -- --test-threads=1
Single-threading the tests is very important because we need to make sure that the basic features are working before actually testing features on dbs/documents.
Why the name "Sofa"
CouchDB has a nice name, and I wanted to reflect that.
License
Licensed under either of these:
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
Yellow Innovation
Yellow Innovation is the innovation laboratory of the French postal service: La Poste.
We create innovative user experiences and journeys through services with a focus on IoT lately.
Modules
types |
Structs
Client |
Client handles the URI manipulation logic and the HTTP calls to the CouchDB REST API. It is also responsible for the creation/access/destruction of databases. |
Database |
Database holds the logic of making operations on a CouchDB Database (sometimes called Collection in other NoSQL flavors such as MongoDB). |
Document |
Document abstracts the handling of JSON values and provides direct access
and casting to the fields of your documents You can get access to the
fields via the implementation of the |
DocumentCollection |
Memory-optimized, iterable document collection, mostly returned in calls
that involve multiple documents results Can target a specific index through
implementation of |
DocumentCollectionItem |
Used inside a |
SofaError |
Traits
Model |
Trait that provides methods that can be used to switch between abstract |