18 个版本

0.2.18 2024 年 7 月 8 日
0.2.17 2024 年 7 月 8 日
0.2.16 2024 年 6 月 7 日
0.2.13 2024 年 5 月 21 日
0.2.1 2021 年 3 月 15 日

342数据库接口

Download history 138/week @ 2024-04-29 553/week @ 2024-05-06 150/week @ 2024-05-13 357/week @ 2024-05-20 398/week @ 2024-06-03 29/week @ 2024-06-10 3/week @ 2024-06-17 109/week @ 2024-07-01 231/week @ 2024-07-08 14/week @ 2024-07-29

每月 335 次下载

MIT 许可证

16KB
175

changes_stream2

License Cargo Documentation

基于 https://github.com/ashleygwilliams/changes-stream-rust / https://crates.io/crates/changes-stream 的分支。

Rust 中 changes-stream 的实现。

此代码从端点读取可读流,解析每一行,并以 CouchDB 变更事件的形式返回,这些事件在 src/event.rs 中定义。

用法

在您的 Cargo.toml

[dependencies]
changes-stream2 = "0.2"

examples/follower.rs

use changes_stream2::{ChangesStream, Event};
use futures_util::stream::StreamExt;

#[tokio::main]
async fn main() {
    let url = "https://replicate.npmjs.com/_changes".to_string();
    let mut changes = ChangesStream::new(url).await.unwrap();
    while let Some(event) = changes.next().await {
        match event {
            Ok(Event::Change(change)) => println!("Change ({}): {}", change.seq, change.id),
            Ok(Event::Finished(finished)) => println!("Finished: {}", finished.last_seq),
            Err(err) => println!("Error: {:?}", err),
        }
    }
}

功能

metrics

启用变更流的指标收集,作为计数器值。名称由 URL 的主机和路径(数据库名称)生成。这些指标包括

  • couchdb_changes_{name}_bytes:从变更流中读取的总字节数
  • couchdb_changes_{name}_entries:解析的总变更条目数

raw_value_doc

将 ChangeEvent::Doc 的类型从 serde_json::Map<String, serde_json::Value> 更改为 serde_json::value::RawValue

native-tls

使用 native-tls crate 进行 TLS 连接。这是默认设置。

rustls-tls

使用 rustls crate 进行 TLS 连接。

依赖项

~6–18MB
~252K SLoC