1 个不稳定发布

0.1.0-alpha.02020 年 3 月 23 日

#2585 in 数据库接口

MIT/Apache

55KB
1.5K SLoC

CDRS-async - Rust 的异步 Apache Cassandra 和 Scylla 驱动程序

CDRS - Apache Cassandra driver

CDRS-async 是 Apache Cassandra 和 Scylla 数据库的异步驱动程序。

它仍处于 alpha 版本,但您可以尝试使用它。

特性

  • LZ4、Snappy 压缩;

  • Cassandra 到 Rust 的数据反序列化;

  • 可插拔的认证策略;

  • ScyllaDB 支持;

  • 服务器事件监听;

  • 支持多个 CQL 版本(3、4),实现完整规范;

  • 查询跟踪信息。

入门指南

将 CDRS-async 添加到您的 Cargo.toml 文件作为依赖项

cdrs-async = { version = "*" }

然后将其添加为外部 crate 到您的 main.rs 文件

extern crate async_std;
extern crate async_trait;
extern crate cdrs_async;

use async_std::{pin::Pin, task};
use cdrs_async::{authenticators::NoneAuthenticator, query::QueryExecutor, Compression, Session};

const CREATE_KS_QUERY: &'static str = r#"
  CREATE KEYSPACE IF NOT EXISTS async_cdrs_3
    WITH REPLICATION = {
      'class' : 'SimpleStrategy',
      'replication_factor' : 1
    };
"#;

fn main() {
  task::block_on(async {
    let authenticator_strategy = NoneAuthenticator {};
    let mut session = Session::connect(
      "127.0.0.1:9042",
      Compression::None,
      authenticator_strategy.into(),
    )
    .await
    .expect("session connect");
    let pinned_session = Pin::new(&mut session);

    let r = pinned_session.query(CREATE_KS_QUERY).await;
    println!("Result {:?}", r);
  });
}

许可

此项目受以下任一许可协议的许可:

依赖项

~15–27MB
~497K SLoC