2 个不稳定版本
0.2.0 | 2020 年 11 月 21 日 |
---|---|
0.1.0 | 2019 年 11 月 24 日 |
#1139 in 硬件支持
55KB
1K SLoC
raio
一个有偏见的 Rust 异步 Bolt 协议 客户端实现 🦀。
支持的 Bolt 版本 | 4.1, 4.0 |
---|
⚠️ 这是 raio-0.1.0
的重写。无法进行迁移。
⚠️ 此包尚未证明几乎没有错误。
⚠️ 注意,此包基于规范,而非其他驱动程序。它是更大项目的一部分,因此未来可能会出现重大变化,并且它是有偏见的。
packs 包驱动 PackStream 部分。
用法
高级入口点是 Client
,它提供了运行查询和打开事务的功能。它附带一个连接池来处理异步操作。
use raio::client::{Client, ClientConfig};
use raio::client::auth::Basic;
use raio::client::error::ClientError;
use raio::messaging::query::Query;
#[async_std::test]
pub async fn auto_commit_simple() -> Result<(), ClientError> {
let auth = Basic::new("neo4j", "mastertest");
let client =
Client::create(
"localhost:7687",
auth,
ClientConfig::default("raio-rs-test", "0.2.0"));
let mut query = Query::new("RETURN $x + 1 as x, $y as y, $b as b");
query.param("x", 1);
query.param("y", Some(String::from("Hello")));
query.param("b", true);
let result =
client
.query(&query)
.await
.expect("Error while querying.");
let first =
result
.records()
.first()
.expect("Expected at least one result");
assert_eq!(first.get_field_typed("x"), Some(&2));
assert_eq!(first.get_field_typed("y"), Some(&String::from("Hello")));
assert_eq!(first.get_field_typed("b"), Some(&true));
Ok(())
}
贡献
欢迎您贡献!此包仍处于非常早期阶段,因此将发现并修复错误,测试相当简短,文档不足。由于我将在更大的项目中使用此包,因此最终将取得进展,但任何帮助都将受到欢迎,以便将其转化为可用且性能优良的 bolt 驱动程序。
依赖关系
~9–22MB
~260K SLoC