8 个版本 (4 个重大更新)

0.5.1 2024 年 6 月 25 日
0.5.0 2023 年 9 月 19 日
0.4.0 2023 年 9 月 13 日
0.3.0 2023 年 9 月 13 日
0.1.2 2023 年 9 月 11 日

1354Web 编程

每月 37 次下载

MIT 许可

39KB
632

qstash-rs 🦀:Upstash QStash 的 Rust SDK

Crates.io

关于

qstash-rs 是一个用于与 Upstash QStash 交互的 Rust 库。它包含一个客户端和服务器(WIP)模块。客户端库是对 Upstash QStash REST API 的封装。

安装

您可以使用 cargo 安装 qstash-rs

cargo add qstash-rs

客户端使用

要开始使用客户端 SDK,您需要使用您的 QStash 令牌实例化 Client 结构体

#[tokio::main]
async fn main() {
  let qstash_client = Client::new("<QSTASH_TOKEN>", None, None).expect("Could not create client");
}

然后您可以使用客户端支持的任何方法。例如,要将带有 JSON 体的新消息发布到队列

#[tokio::main]
async fn main() {
    let qstash_client = Client::new("<QSTASH_TOKEN>", None, None).expect("Could not create client");

    match qstash_client
        .publish_json(
            PublishRequestUrl::Url("https://google.com".parse().expect("Could not parse URL")),
            HashMap::from([("test", "test")]),
            None,
        )
        .await
    {
        Ok(r) => {
            tracing::info!("Response: {:?}", r);
            for res in r {
                if res.error.is_some() {
                    panic!("This should NOT have an error");
                }
            }
        }
        Err(e) => {
            tracing::error!("{}", e.to_string());
            panic!("Could not publish");
        }
    };
}

更全面的示例可以在 crate 文档 中找到

贡献

欢迎贡献!如果您有问题、疑问或建议,请随时提交 pull request 或打开 issue。

许可

本项目采用 MIT 许可。详情请参阅 LICENSE 文件。

依赖

~4–16MB
~217K SLoC