Crates.io | cloudevents-sdk |
lib.rs | cloudevents-sdk |
version | 0.7.0 |
source | src |
created_at | 2020-03-13 07:41:48.45018 |
updated_at | 2023-02-24 11:39:55.625794 |
description | CloudEvents official Rust SDK |
homepage | |
repository | https://github.com/cloudevents/sdk-rust |
max_upload_size | |
id | 218064 |
size | 234,631 |
This project implements the CloudEvents Spec for Rust.
Note: This project is WIP under active development, hence all APIs are considered unstable.
v0.3 | v1.0 | |
---|---|---|
CloudEvents Core | ✓ | ✓ |
AMQP Protocol Binding | ✕ | ✕ |
AVRO Event Format | ✕ | ✕ |
HTTP Protocol Binding | ✓ | ✓ |
JSON Event Format | ✓ | ✓ |
Kafka Protocol Binding | ✓ | ✓ |
MQTT Protocol Binding | ✕ | ✕ |
NATS Protocol Binding | ✓ | ✓ |
Web hook | ✕ | ✕ |
The core modules include definitions for the Event
and
EventBuilder
data structures, JSON serialization rules, and a
mechanism to support various Protocol Bindings, each of which is
enabled by a specific feature flag:
actix
: Integration with actix.axum
: Integration with axum.warp
: Integration with warp.reqwest
: Integration with reqwest.rdkafka
: Integration with rdkafka.nats
: Integration with natsThis crate is continuously tested to work with GNU libc, WASM and musl toolchains.
To get started, add the dependency to Cargo.toml
, optionally
enabling your Protocol Binding of choice:
[dependencies]
cloudevents-sdk = { version = "0.7.0" }
Now you can start creating events:
use cloudevents::{EventBuilder, EventBuilderV10};
use url::Url;
let event = EventBuilderV10::new()
.id("aaa")
.source(Url::parse("http://localhost").unwrap())
.ty("example.demo")
.build()?;
Checkout the examples using our integrations to learn how to send and receive events:
If you're interested in contributing to sdk-rust, look at Contributing documentation
@slinkydeveloper
on slack).Each SDK may have its own unique processes, tooling and guidelines, common
governance related material can be found in the
CloudEvents community
directory. In particular, in there you will find information concerning
how SDK projects are
managed,
guidelines
for how PR reviews and approval, and our
Code of Conduct
information.