#cloud-events #spec #sdk #structure

cloudevents-sdk

CloudEvents 官方 Rust SDK

9 个版本 (重大变更)

0.7.0 2023年2月24日
0.6.0 2022年11月7日
0.5.0 2022年3月18日
0.4.0 2021年7月7日
0.0.1 2020年3月13日

网页编程 中排名第 790

Download history 3846/week @ 2024-03-14 3853/week @ 2024-03-21 3069/week @ 2024-03-28 3494/week @ 2024-04-04 3573/week @ 2024-04-11 2674/week @ 2024-04-18 2640/week @ 2024-04-25 3203/week @ 2024-05-02 3607/week @ 2024-05-09 3071/week @ 2024-05-16 3493/week @ 2024-05-23 3395/week @ 2024-05-30 3707/week @ 2024-06-06 4126/week @ 2024-06-13 3895/week @ 2024-06-20 3319/week @ 2024-06-27

每月下载量 15,518
用于 23 个 Crates (直接使用 18 个)

自定义许可协议

220KB
5K SLoC

CloudEvents SDK Rust Crates 徽章 Docs 徽章

此项目实现了 Rust 的 CloudEvents 规范。

注意:此项目处于 WIP 状态,处于积极开发中,因此所有 API 都被视为不稳定。

规范支持

v0.3 v1.0
CloudEvents 核心
AMQP 协议绑定
AVRO 事件格式
HTTP 协议绑定
JSON 事件格式
Kafka 协议绑定
MQTT 协议绑定
NATS 协议绑定
Web 钩子

包结构

核心模块包括 EventEventBuilder 数据结构的定义、JSON 序列化规则以及支持各种协议绑定的机制,每个绑定通过特定的 功能标志 启用。

  • actix:与 actix 集成。
  • axum:与 axum 集成。
  • warp:与 warp 集成。
  • reqwest:与 reqwest 集成。
  • rdkafka:与 rdkafka 集成。
  • nats:与 nats 集成

此包持续测试以与 GNU libc、WASM 和 musl 工具链一起工作。

开始使用

要开始使用,请将依赖项添加到 Cargo.toml,可选地启用您选择的协议绑定

[dependencies]
cloudevents-sdk = { version = "0.7.0" }

现在您可以开始创建事件了

use cloudevents::{EventBuilder, EventBuilderV10};
use url::Url;

let event = EventBuilderV10::new()
    .id("aaa")
    .source(Url::parse("https://127.0.0.1").unwrap())
    .ty("example.demo")
    .build()?;

通过我们的集成示例学习如何发送和接收事件

开发与贡献

如果您想为 sdk-rust 贡献,请查看 贡献文档

社区

  • 在每月的 9 点 PT(美国太平洋时间)的 Serverless/CloudEvents 调用之后立即进行双周会议。这意味着它们通常在 10 点 PT 开始,但如果其他会议提前结束,则 SDK 调用也将提前开始。请参阅 CloudEvents 会议纪要 以确定哪一周将进行会议。
  • Slack:#cloudeventssdk(或 #cloudevents-sdk-rust)频道位于 CNCF 的 Slack 工作区 下。
  • 电子邮件: https://lists.cncf.io/g/cncf-cloudevents-sdk
  • 联系更多信息:Francesco Guardiani(在 slack 上的 @slinkydeveloper)。

每个 SDK 可能都有自己的独特流程、工具和指南,有关共同治理相关材料的更多信息可以在 CloudEvents community 目录中找到。特别是,在那里您将找到有关 SDK 项目如何 管理、如何进行 PR 审查和批准的 指南,以及我们的 行为准则 信息。

依赖关系

~4–23MB
~382K SLoC