Expand description
This crate implements the CloudEvents Spec for Rust.
use cloudevents::{EventBuilder, AttributesReader, EventBuilderV10};
use chrono::{Utc, DateTime};
use url::Url;
let event = EventBuilderV10::new()
.id("my_event.my_application")
.source("http://localhost:8080")
.ty("example.demo")
.time(Utc::now())
.build()?;
println!("CloudEvent Id: {}", event.id());
match event.time() {
Some(t) => println!("CloudEvent Time: {}", t),
None => println!("CloudEvent Time: None")
}
This crate includes:
- The
Event
data structure, to represent CloudEvent (version 1.0 and 0.3) - The
EventBuilder
trait and implementations, to createEvent
instances - The implementation of
serde::Serialize
andserde::Deserialize
forEvent
to serialize/deserialize CloudEvents to/from JSON - Traits and utilities in
message
to implement Protocol Bindings - Feature-guarded modules for various Protocol Binding implementations, e.g. actix, axum, reqwest, warp, rdkafka
§Feature flags
Cloudevents uses a set of feature flags to conditionally compile only the module associated with the Protocol Binding you need:
actix
: Enables thebinding::actix
protocol binding module. This extends theactix_web::HttpRequest
with ato_event
function, theactix_web::HttpResponseBuilder
with anevent
function, and implementations foractix_web::FromRequest
andactix_web::Responder
in order to take advantage of actix-web’s Extractors and Respondersreqwest
: Enables thebinding::reqwest
protocol binding module.warp
: Enables thebinding::warp
protocol binding module.axum
: Enables thebinding::axum
protocol binding module.rdkafka
: Enables thebinding::rdkafka
protocol binding module to seamlessly consume/produce cloudevents within Kafka messages.
Re-exports§
pub use event::Data;
pub use event::Event;
pub use event::AttributesReader;
pub use event::AttributesWriter;
pub use event::EventBuilder;
pub use event::EventBuilderV03;
pub use event::EventBuilderV10;
Modules§
- binding
- Provides protocol binding implementations for
crate::Event
. - event
- Provides
Event
data structure,EventBuilder
and other facilities to work withEvent
. - message
- Provides facilities to implement Protocol Bindings.