Crate cloudevents

Source
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 create Event instances
  • The implementation of serde::Serialize and serde::Deserialize for Event 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:

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 with Event.
message
Provides facilities to implement Protocol Bindings.

Macros§

header_value_to_str