[−][src]Crate couch_rs
CouchDB library for Rust
Description
This crate is an interface to CouchDB HTTP REST API. Works with stable Rust.
This library is a spin-off based on the excellent work done by Mathieu Amiot and others at Yellow Innovation on the Sofa library. The original project can be found at https://github.com/YellowInnovation/sofa
The Sofa library lacked support for async I/O, and missed a few essential operations we needed on our projects. That's why I've decided to create a new project based on the original Sofa code.
The rust-rs library has been updated to the Rust 2018 edition standards, uses async I/O, and compiles against the latest serde and reqwest libraries.
NOT 1.0 YET, so expect changes
Supports CouchDB 2.3.0 and up, including the newly released 3.0 version.
Be sure to check CouchDB's Documentation in detail to see what's possible.
Example code
You can launch the included example with:
cargo run --example basic_operations
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.
Since Couch 3.0 the "Admin Party" mode is no longer supported. This means you need to provide a username and password during launch.
The tests and examples assume an "admin" CouchDB user with a "password" CouchDB password. Docker run command:
docker run --rm -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:3
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.
Modules
database | |
document | |
error | |
model | |
types |
Macros
find_all_selector | Returns all documents |
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. |