28个版本
0.10.1 | 2024年5月6日 |
---|---|
0.10.0 | 2024年3月22日 |
0.9.4 | 2023年11月15日 |
0.9.2 | 2023年3月10日 |
0.8.25 | 2020年11月16日 |
#9 in #couch-db
2,362 每月下载量
在 couch_rs 中使用
8KB
Rust的CouchDB库
文档
安装
在Cargo.toml文件中包含此依赖项
[dependencies]
couch_rs = "0.9"
描述
此包是CouchDB HTTP REST API的接口。适用于稳定版Rust。
此库是基于Yellow Innovation的Mathieu Amiot和其他人基于Sofa库的出色工作而衍生出来的。原始项目可以在https://github.com/YellowInnovation/sofa找到
Sofa库缺少对异步I/O的支持,并且缺少我们在项目中需要的几个基本操作。这就是我决定基于原始Sofa代码创建一个新项目的原因。
rust-rs库已更新到Rust 2018版标准,使用异步I/O,并针对最新的serde和reqwest库进行编译。
尚未达到1.0版本,因此请预期会有变化
支持CouchDB 2.3.0及以上版本。在包括3.2.2在内的各种CouchDB版本的生产环境中使用。
请务必详细查看CouchDB的文档,了解可能的功能。
用法
一个典型的查找操作如下所示
use couch_rs::types::find::FindQuery;
use std::error::Error;
use serde_json::Value;
use couch_rs::document::DocumentCollection;
const DB_HOST: &str = "https://127.0.0.1:5984";
const TEST_DB: &str = "test_db";
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let client = couch_rs::Client::new(DB_HOST, "admin", "password")?;
let db = client.db(TEST_DB).await?;
let find_all = FindQuery::find_all();
let docs = db.find_raw(&find_all).await?;
Ok(())
}
示例
您可以使用以下命令启动包含的示例
cargo run --example basic_operations
运行测试
请确保您有一个运行中的CouchDB 2.0+实例,无论是通过提供的docker-compose.yml
文件还是自己运行。它必须监听默认端口。自Couch 3.0起,“Admin Party”模式不再受支持。这意味着您需要在启动时提供用户名和密码。测试和示例假设有一个名为“admin”的CouchDB用户和一个名为“password”的CouchDB密码。Docker运行命令
docker run --rm -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:3
然后运行cargo test --features=integration-tests -- --test-threads=1
单线程测试非常重要,因为我们需要确保在实际上测试dbs/documents的功能之前,基本功能正在正常工作。
如果您的环境中提供了bash,您还可以使用test.sh
脚本,它基本上与上面描述的相同。
许可证
根据以下任一许可证授权
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
免责声明
请注意:本存储库中的所有内容均以“原样”形式发布,不提供任何类型的保证,包括但不限于它们的安装、使用或性能。我们放弃任何和所有明示或暗示的保证,包括但不限于任何不侵权、适销性、或/和特定目的适用性的保证。我们不保证该技术将满足您的需求,其操作将不间断或无错误,或任何错误都将得到纠正。
使用此库的风险由您自行承担。我们无法保证它已在可比较的环境中经过彻底测试,并且我们不承担使用过程中造成的任何损害或数据丢失的责任。
您在使用任何非测试环境之前,应彻底审查和测试您运行的任何代码。
依赖项
~275–730KB
~17K SLoC