--- title: Home nav_order: 1 --- # Java SDK for CloudEvents 1. [Introduction](#introduction) 1. [Supported features](#supported-features) 1. [Get Started](#get-started) 1. [Modules](#modules) ## Introduction The Java SDK for CloudEvents is a collection of Java libraries to adopt CloudEvents in your Java application. Using the Java SDK you can: - Access, create and manipulate `CloudEvent` inside your application. - Serialize and deserialize `CloudEvent` back and forth using the _CloudEvents Event Format_, like Json. - Read and write `CloudEvent` back and forth to HTTP, Kafka, AMQP using the _CloudEvents Protocol Binding_ implementations we provide for a wide range of well known Java frameworks/libraries. ## Supported features | | [v0.3](https://github.com/cloudevents/spec/tree/v0.3) | [v1.0](https://github.com/cloudevents/spec/tree/v1.0) | | :------------------------------------------------: | :---------------------------------------------------: | :---------------------------------------------------: | | CloudEvents Core | :heavy_check_mark: | :heavy_check_mark: | | AMQP Protocol Binding | :x: | :x: | | - [Proton](amqp-proton.md) | :heavy_check_mark: | :heavy_check_mark: | | AVRO Event Format | :x: | :x: | | HTTP Protocol Binding | :heavy_check_mark: | :heavy_check_mark: | | - [Vert.x](http-vertx.md) | :heavy_check_mark: | :heavy_check_mark: | | - [Jakarta Restful WS](http-jakarta-restful-ws.md) | :heavy_check_mark: | :heavy_check_mark: | | - [Basic](http-basic.md) | :heavy_check_mark: | :heavy_check_mark: | | - [Spring](spring.md) | :heavy_check_mark: | :heavy_check_mark: | | - [http4k][http4k] | :heavy_check_mark: | :heavy_check_mark: | | JSON Event Format | :heavy_check_mark: | :heavy_check_mark: | | - [Jackson](json-jackson.md) | :heavy_check_mark: | :heavy_check_mark: | | Protobuf Event Format | :heavy_check_mark: | :heavy_check_mark: | | - [Proto](protobuf.md) | :heavy_check_mark: | :heavy_check_mark: | | XML Event Format | :heavy_check_mark: | :heavy_check_mark: | | - [XML](xml.md) | :heavy_check_mark: | :heavy_check_mark: | | [Kafka Protocol Binding](kafka.md) | :heavy_check_mark: | :heavy_check_mark: | | MQTT Protocol Binding | :x: | :x: | | NATS Protocol Binding | :x: | :x: | | Web hook | :x: | :x: | † Source/artifacts hosted externally ## Get Started In order to start learning how to create, access and manipulate `CloudEvent`s, check out the [Core module documentation](core.md). If you want to serialize and deserialize events and data back and forth to JSON, check out the [Jackson Json module documentation](json-jackson.md). Depending on the protocol and framework you're using, if you want to send and receive CloudEvents, check out the dedicated pages: - [AMQP using Proton](amqp-proton.md) - [HTTP using Vert.x](http-vertx.md) - [HTTP using Jakarta EE 8 - Jakarta Restful WS](http-jakarta-restful-ws.md) - [HTTP using Jakarta EE 9+ - Jakarta Restful WS](http-jakarta-restful-ws-jakarta.md) - [HTTP using Spring](spring.md) - [HTTP using Jackson](json-jackson.md) - [Kafka](kafka.md) If you're interested in implementing an object conforming to the `CloudEvent` and related interfaces, in order to interoperate with the other components of the SDK, check out the [API module documentation](api.md). You can also check out the [**Examples**](https://github.com/cloudevents/sdk-java/tree/main/examples). ## Modules The CloudEvents SDK for Java is composed by several modules, each one providing a different feature from the different sub specs of [CloudEvents specification](#supported-features): - [`cloudevents-api`] Module providing the `CloudEvent` and other base interfaces - [`cloudevents-core`] Module providing `CloudEvent` implementation, `CloudEventBuilder` to create `CloudEvent`s programmatically, `EventFormat` to implement [Event Formats](https://github.com/cloudevents/spec/blob/v1.0/spec.md#event-format), `MessageReader` /`MessageWriter` to implement [Protocol bindings](https://github.com/cloudevents/spec/blob/v1.0/spec.md#protocol-binding) - [`cloudevents-bom`] Module providing a [bill of materials (BOM)](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms) for easier integration of CloudEvents in other projects - [`cloudevents-json-jackson`] Implementation of [JSON Event format] with [Jackson](https://github.com/FasterXML/jackson) - [`cloudevents-protobuf`] Implementation of [Protobuf Event format] using code generated from the standard [protoc](https://github.com/protocolbuffers/protobuf) compiler. - [`cloudevents-xml`] Implementation of the XML Event Format. - [`cloudevents-http-vertx`] Implementation of [HTTP Protocol Binding] with [Vert.x Core](https://vertx.io/) - [`cloudevents-http-restful-ws`] Implementation of [HTTP Protocol Binding] for [Jakarta EE 8 Restful WS](https://jakarta.ee/specifications/restful-ws/2.1/) - [`cloudevents-http-restful-ws-jakarta`] Implementation of [HTTP Protocol Binding] for [Jakarta EE 9+ Restful WS](https://jakarta.ee/specifications/restful-ws/) - [`cloudevents-http-basic`] Generic implementation of [HTTP Protocol Binding], primarily intended for integrators - [`cloudevents-kafka`] Implementation of [Kafka Protocol Binding] - [`cloudevents-amqp-proton`] Implementation of [AMQP Protocol Binding] with [Proton](http://qpid.apache.org/proton/) - [`cloudevents-spring`] Integration of `CloudEvent` with different Spring APIs, like MVC, WebFlux and Messaging You can look at the latest published artifacts on [Maven Central](https://search.maven.org/search?q=g:io.cloudevents). [JSON Event format]: https://github.com/cloudevents/spec/blob/v1.0/json-format.md [Protobuf Event format]: https://github.com/cloudevents/spec/blob/v1.0.1/protobuf-format.md [HTTP Protocol Binding]: https://github.com/cloudevents/spec/blob/v1.0/http-protocol-binding.md [Kafka Protocol Binding]: https://github.com/cloudevents/spec/blob/v1.0/kafka-protocol-binding.md [AMQP Protocol Binding]: https://github.com/cloudevents/spec/blob/v1.0/amqp-protocol-binding.md [`cloudevents-api`]: https://github.com/cloudevents/sdk-java/tree/main/api [`cloudevents-bom`]: https://github.com/cloudevents/sdk-java/tree/main/bom [`cloudevents-core`]: https://github.com/cloudevents/sdk-java/tree/main/core [`cloudevents-json-jackson`]: https://github.com/cloudevents/sdk-java/tree/main/formats/json-jackson [`cloudevents-protobuf`]: https://github.com/cloudevents/sdk-java/tree/main/formats/protobuf [`cloudevents-xml`]: https://github.com/cloudevents/sdk-java/tree/main/formats/xml [`cloudevents-http-vertx`]: https://github.com/cloudevents/sdk-java/tree/main/http/vertx [`cloudevents-http-basic`]: https://github.com/cloudevents/sdk-java/tree/main/http/basic [`cloudevents-http-restful-ws`]: https://github.com/cloudevents/sdk-java/tree/main/http/restful-ws [`cloudevents-http-restful-ws-jakarta`]: https://github.com/cloudevents/sdk-java/tree/main/http/restful-ws-jakarta [`cloudevents-kafka`]: https://github.com/cloudevents/sdk-java/tree/main/kafka [`cloudevents-amqp-proton`]: https://github.com/cloudevents/sdk-java/tree/main/amqp [`cloudevents-spring`]: https://github.com/cloudevents/sdk-java/tree/main/spring [http4k]: https://www.http4k.org/guide/modules/cloud_events/