Crate cloudevents[−][src]
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, 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 the [binding::actix
] protocol binding module. This extends the [actix_web::HttpRequest
] with ato_event
function, the [actix_web::dev::HttpResponseBuilder
] with anevent
function, and implementations for [actix_web::FromRequest
] and [actix_web::Responder
] in order to take advantage of actix-web’s Extractors and Respondersreqwest
: Enables the [binding::reqwest
] protocol binding module.warp
: Enables the [binding::warp
] protocol binding module.rdkafka
: Enables the [binding::rdkafka
] protocol binding module to seamlessly consume/produce cloudevents within Kafka messages.
Re-exports
pub use event::Event;
Modules
Provides protocol binding implementations for crate::Event
.
Provides Event
data structure, EventBuilder
and other facilities to work with Event
.
Provides facilities to implement Protocol Bindings.
Structs
Builder to create a CloudEvent V0.3
Builder to create a CloudEvent V1.0
Enums
Event data attribute representation
Traits
Trait to get CloudEvents Context attributes.
Trait to set CloudEvents Context attributes.
Trait to implement a builder for Event
: