Rust library to interact with CloudEvents
Go to file
Jim Crossley 51b49f1335 New feature: cloudevents-reqwest
Conditionally compile reqwest module when enabled

This resulted in a naming conflict between my desired feature name,
"reqwest", and the optional dependency itself. So I adopted the
convention of prefixing the features with "cloudevents-".

Signed-off-by: Jim Crossley <jim@crossleys.org>
2021-06-25 10:12:23 -04:00
.github/workflows New feature: cloudevents-reqwest 2021-06-25 10:12:23 -04:00
cloudevents-sdk-actix-web New feature: cloudevents-actix 2021-06-25 10:12:23 -04:00
cloudevents-sdk-rdkafka New feature: cloudevents-actix 2021-06-25 10:12:23 -04:00
cloudevents-sdk-reqwest New feature: cloudevents-reqwest 2021-06-25 10:12:23 -04:00
cloudevents-sdk-warp Fix tests after refactoring URIRef (#116) 2021-04-21 11:09:24 +02:00
example-projects New feature: cloudevents-reqwest 2021-06-25 10:12:23 -04:00
src New feature: cloudevents-reqwest 2021-06-25 10:12:23 -04:00
tests Fix tests after refactoring URIRef (#116) 2021-04-21 11:09:24 +02:00
.gitignore Added actix-web example (#38) 2020-05-18 20:57:37 +02:00
CONTRIBUTING.md Reorganized symbol exports for 0.1 release (#45) 2020-05-20 11:43:47 +02:00
Cargo.toml New feature: cloudevents-reqwest 2021-06-25 10:12:23 -04:00
LICENSE License nit 2020-02-18 14:20:25 +01:00
README.md Release 0.3.1 bumps (#111) 2021-01-18 18:13:34 +01:00

README.md

CloudEvents SDK Rust Crates badge Docs badge

This project implements the CloudEvents Spec for Rust.

Note: This project is WIP under active development, hence all APIs are considered unstable.

Spec support

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

Crates

  • cloudevents-sdk: Provides Event data structure, JSON Event format implementation. This module is tested to work with GNU libc, WASM and musl toolchains.
  • cloudevents-sdk-actix-web: Integration with Actix Web.
  • cloudevents-sdk-reqwest: Integration with reqwest.
  • cloudevents-sdk-rdkafka: Integration with rust-rdkafka.
  • cloudevents-sdk-warp: Integration with warp.

Get Started

To get started, add the dependency to Cargo.toml:

[dependencies]
cloudevents-sdk = "0.3.1"

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:

Development & Contributing

If you're interested in contributing to sdk-rust, look at Contributing documentation

Community

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.