4个版本
新版本 0.2.1 | 2024年8月22日 |
---|---|
0.2.0 | 2024年8月22日 |
0.1.0 | 2024年8月19日 |
0.1.0-alpha.0 | 2024年7月16日 |
#254 in 魔法豆
每月下载量 127
98KB
2K SLoC
Restate Rust SDK
[!警告] Rust SDK目前处于预览/早期访问阶段。
Restate 是一个系统,用于使用 分布式持久异步/await 轻松构建健壮的应用程序。此存储库包含用于使用 Rust 编写服务的 Restate SDK。
社区
- 🤗️ 加入我们的在线社区 获取帮助、分享反馈并与社区交流。
- 📖 查看我们的文档 以快速开始!
- 📣 关注我们的Twitter 以保持最新状态。
- 🙋 创建GitHub问题 以请求新功能或报告问题。
- 🏠 访问我们的GitHub组织 以探索其他存储库。
使用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