4个版本

新版本 0.2.1 2024年8月22日
0.2.0 2024年8月22日
0.1.0 2024年8月19日
0.1.0-alpha.02024年7月16日

#254 in 魔法豆

Download history 93/week @ 2024-07-10 34/week @ 2024-07-17 12/week @ 2024-07-24 114/week @ 2024-08-14

每月下载量 127

MIT 协议

98KB
2K SLoC

Documentation crates.io Examples Discord Twitter

Restate Rust SDK

[!警告] Rust SDK目前处于预览/早期访问阶段。

Restate 是一个系统,用于使用 分布式持久异步/await 轻松构建健壮的应用程序。此存储库包含用于使用 Rust 编写服务的 Restate SDK。

社区

使用SDK

添加Restate和Tokio作为依赖项

[dependencies]
restate-sdk = "0.1"
tokio = { version = "1", features = ["full"] }

然后您就可以使用 Rust 开发 Restate 服务了

use restate_sdk::prelude::*;

#[restate_sdk::service]
trait Greeter {
    async fn greet(name: String) -> HandlerResult<String>;
}

struct GreeterImpl;

impl Greeter for GreeterImpl {
    async fn greet(&self, _: Context<'_>, name: String) -> HandlerResult<String> {
        Ok(format!("Greetings {name}"))
    }
}

#[tokio::main]
async fn main() {
    // To enable logging/tracing
    // tracing_subscriber::fmt::init();
    HttpServer::new(
        Endpoint::builder()
            .with_service(GreeterImpl.serve())
            .build(),
    )
    .listen_and_serve("0.0.0.0:9080".parse().unwrap())
    .await;
}

日志记录

SDK 使用 tokio 的 tracing 包来生成日志。只需像往常一样通过 tracing_subscriber 进行配置即可获取您的日志。

版本

Rust SDK目前处于积极开发中,可能会在版本之间中断兼容性。

与 Restate 的兼容性在以下表中描述

Restate 服务器\sdk-rust 0.0/0.1/0.2
1.0

贡献

我们很高兴您加入 Restate 社区并开始贡献!无论是功能请求、错误报告、想法和反馈还是PR,我们非常重视任何形式的贡献。我们知道您的时间宝贵,因此非常重视您的贡献!

在本地构建SDK

先决条件

构建和测试SDK

just verify

发布

您需要 Rust 工具链。为了验证

just verify

发布时,我们使用 cargo-release

cargo release <VERSION> --exclude test-services --workspace

依赖项

~14–25MB
~466K SLoC