eclipse-uprotocol / up-spec

uProtocol Specifications
Apache License 2.0
31 stars 25 forks source link
core uprotocol

= Eclipse uProtocol Specification :toc: preamble :sectnums: :showtitle!:

image:https://github.com/eclipse-uprotocol/.github/blob/main/logo/uprotocol_logo.png?raw=true[uProtocol Logo,width=640]

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in https://www.rfc-editor.org/info/bcp14[IETF BCP14 (RFC2119 & RFC8174)]


SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional information regarding copyright ownership.

This program and the accompanying materials are made available under the terms of the Apache License Version 2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0

SPDX-FileType: DOCUMENTATION SPDX-License-Identifier: Apache-2.0

== Overview

uProtocol is a communication protocol that enables software (uEs) to easily communicate with each other running in distributed systems. The protocol is designed to be lightweight, efficient, easy to use, and run on top of any other communication middleware (transport) such as SOME/IP, MQTT, zenoh, HTTP, etc...

To achieve the above mentioned objectives, we have split the specifications into sections (folders) that are:

== How to get started?

It is always best to start with link:basics/README.adoc[the basics] to familiarize yourself with common terminology used with uProtocol.

If you're a developer who would like to use uProtocol in your application or service, please refer to the appropriate language library (ex. up-cpp, up-java, up-rust, etc..) README.adoc.

If you would like to contribute to uProtocol to develop a new language library or transport implementation, please checkout the link:CONTRIBUTING.adoc[CONTRIBUTING.adoc].