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 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
Universal Unique Identifiers (UUID) are used in uProtocol to uniquely identify UMessages
. The UUID includes a timestamp used to verify the liveliness of a message (ex. if a type of message should expire or not). For more explanation of the use cases for the uProtocol UUID, please refer to UAttributes Specifications.
The UUID may be represented in one of the following formats:
-
An instantiation of the Data Model in a supported programming language
-
or as a "hex-and-dash" string defined in RFC 9562
The diagram below shows a UUID and its properties using UML2 notation.
classDiagram
class UUID {
msb : UInt64
lsb : UInt64
}
Each uProtocol Language Library MUST support writing and reading of an instance of the data model to/from a protobuf as defined in uuid.proto.