https://github.com/eclipse-uprotocol/up-java
uProtocol Language Specific Library for Java
https://github.com/eclipse-uprotocol/up-java
core java uprotocol
Last synced: about 1 year ago
JSON representation
uProtocol Language Specific Library for Java
- Host: GitHub
- URL: https://github.com/eclipse-uprotocol/up-java
- Owner: eclipse-uprotocol
- License: apache-2.0
- Created: 2023-05-04T11:56:52.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-09T20:06:25.000Z (almost 2 years ago)
- Last Synced: 2025-03-26T16:03:26.004Z (over 1 year ago)
- Topics: core, java, uprotocol
- Language: Java
- Size: 562 KB
- Stars: 10
- Watchers: 8
- Forks: 14
- Open Issues: 9
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Eclipse uProtocol Java Library
:toc:
== Overview
This library implements the https://github.com/eclipse-uprotocol/uprotocol-spec/blob/main/languages.adoc[uProtocol Language Specific Library Requirements] for Java defined in https://github.com/eclipse-uprotocol/uprotocol-spec/tree/main[uProtocol Specifications]. The library is organized into packages that are described in <> below and organized by the layers of the protocol.
Each package contains a README.adoc file that describes the purpose of the package and how to use it.
The module contains the factory methods, serializers, and validators for all data types defined in the specifications, and any data models that either haven't or couldn't be defined in up-core-api yet.
== Getting Started
=== Importing the Library
To pull the Library from maven central, setting ${uprotocol.version} to the latest version of this library in your pom.xml file:
[source]
----
org.eclipse.uprotocol
up-java
${uprotocol.version}
----
=== Using The Library
.SDK Packages
[#sdk-packages,width=100%,cols="1,2,5",options="header"]
|===
| Package | Protocol Layer | Purpose
| xref:src/main/java/org/eclipse/uprotocol/communication/README.adoc[`*client*`]
| https://github.com/eclipse-uprotocol/up-spec/tree/main/up-l3[Application Layer (uP-L3)]
| Top level client-facing interfaces to communication with USubscription, UDiscovery, and UTwin services.
| xref:src/main/java/org/eclipse/uprotocol/communication/README.adoc[`*communication*`]
| https://github.com/eclipse-uprotocol/up-spec/tree/main/up-l2[communication layer (uP-L2)]
| Common implementation of communication messaging patterns (publisher, subscriber, Rpcclient, RpcServer, etc..) tha t is build on top of the L1 transport interface (see below)
| link:src/main/java/org/eclipse/uprotocol/transport/README.adoc[`*transport*`]
| https://github.com/eclipse-uprotocol/uprotocol-spec/blob/main/up-l1/README.adoc[Transport Layer (uP-L1)]
| Interface and data model for how to send() and receive() messages in a common way across various transport technologies (ex. zenoh, mqtt, http, etc...). the interface is implemented by transports (ex. up-transport-android-java), and the interface is then used to build the uProtocol layer 2 communication layer implementation.
| link:src/main/java/org/eclipse/uprotocol/uri/README.adoc[`*uuri*`]
| Basics
| uProtocol addressing scheme (UUri) builders, validators, and serializers.
| link:src/main/java/org/eclipse/uprotocol/uuid/README.adoc[`*uuid*`]
| Basics
| uProtocol unique identifier builders, validators, and serializers.
| link:src/main/java/org/eclipse/uprotocol/cloudevent/README.adoc[`*cloudevent*`]
| Legacy
| A representation of uProtocol messages used in older versions of the specifications kept for backwards compatibility.
|===