5个版本

0.1.6 2021年9月23日
0.1.5 2021年8月4日
0.1.4 2021年5月13日
0.1.3 2021年4月26日
0.1.2 2021年4月26日

#450 in 异步

每月46次下载

自定义许可

405KB
9K SLoC


基于actor模型框架构建的异步ScyllaDB驱动程序

Developer documentation portal

Discord StackExchange Apache 2.0 license

关于先决条件入门支持项目加入讨论未来工作LICENSE


关于

Scylla.rs 提供了Rust应用程序和分布式Scylla数据库之间的快速和安全互操作性。Scylla.rs 基于IOTA actor框架 backstage 构建,但不需要依赖的应用程序使用此框架。

Scylla.rs 分为两部分

  • 应用: 包含简化数据库访问的特质以及管理数据库连接的actor实现。此功能通过 app 功能门控。
  • CQL: 包含CQL帧定义以及压缩、哈希和构建帧的实用工具。

注意: 这是一款alpha软件,可能存在性能和稳定性问题。请在我们的 问题跟踪器 中报告任何问题。

先决条件

Scylla.rs 需要通过地址和端口连接到运行中的Scylla实例。有关创建Docker实例的说明,请参阅 此处

入门

首先,将 scylla 添加到您的 Cargo.toml 文件中。

scylla-rs = "0.1"

接下来,构建Scylla actor。这应该通过将 Scylla actor 添加到Backstage launcher! 宏来完成

launcher!(builder: AppsBuilder {[] -> Scylla<Sender>: ScyllaBuilder<Sender>}, state: Apps {});

通过调用来启动启动程序

// Create the `Apps` struct by invoking `AppsBuilder::build`
let apps = AppsBuilder::new().build();
// Start the launcher
apps.Scylla()
    .await
    // The following enables us to immediately add a node to
    // the ring using the listen address configured for the 
    // Scylla actor.
    .future(|apps| async {
        let ws = format!("ws://{}/", "127.0.0.1:8080");
        let nodes = vec![([172, 17, 0, 2], 19042).into()];
        add_nodes(&ws, nodes, 1).await.expect("unable to add nodes");
        apps
    })
    .await
    .start(None)
    .await;

支持项目

如果您想为Scylla做出贡献如果遇到问题,请考虑提交错误报告功能请求拉取请求

在贡献之前请阅读以下内容

加入讨论

如果您想参与社区,需要帮助设置环境,有任何与Chronicle相关的问题,或者只是想与其他人讨论IOTA、分布式注册技术(DRT)和物联网,欢迎加入我们的Discord

未来工作

  • 改进可用性和文档

许可证

(c)2021 - IOTA Stiftung

IOTA Scylla.rs遵循Apache许可证(版本2.0)。

依赖项

~5–18MB
~196K SLoC