Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 2.07 KB

uuid.adoc

File metadata and controls

59 lines (41 loc) · 2.07 KB

UUID

Table of Contents

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

1. Overview

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

2. Data Model

The diagram below shows a UUID and its properties using UML2 notation.

UUID Data Model
classDiagram

class UUID {
  msb : UInt64
  lsb : UInt64
}
Loading

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.