Bug: 182948946

Clone this repo:
  1. 5798bbe Update Android.bp by running cargo_embargo by James Farrell · 3 weeks ago main master
  2. 585c8fb Enable tests that depend on bincode by Martin Geisler · 8 weeks ago
  3. 8fda1b2 Upgrade uuid to 1.7.0 am: 236061811b by Jeff Vander Stoep · 4 months ago
  4. 2360618 Upgrade uuid to 1.7.0 by Jeff Vander Stoep · 4 months ago
  5. dfd6f18 Migrate to cargo_embargo. am: 095addb12a am: 32ef06bea7 am: 002c6ff94d by Andrew Walbran · 7 months ago


Latest Version Continuous integration

Here's an example of a UUID:


A UUID is a unique 128-bit value, stored as 16 octets, and regularly formatted as a hex string in five groups. UUIDs are used to assign unique identifiers to entities without requiring a central allocating authority.

They are particularly useful in distributed systems, though can be used in disparate areas, such as databases and network protocols. Typically a UUID is displayed in a readable string form as a sequence of hexadecimal digits, separated into groups by hyphens.

The uniqueness property is not strictly guaranteed, however for all practical purposes, it can be assumed that an unintentional collision would be extremely unlikely.

Getting started

Add the following to your Cargo.toml:

version = "1.7.0"
features = [
    "v4",                # Lets you generate random UUIDs
    "fast-rng",          # Use a faster (but still sufficiently random) RNG
    "macro-diagnostics", # Enable better diagnostics for compile-time UUIDs

When you want a UUID, you can generate one:

use uuid::Uuid;

let id = Uuid::new_v4();

If you have a UUID value, you can use its string literal form inline:

use uuid::{uuid, Uuid};

const ID: Uuid = uuid!("67e55044-10b1-426f-9247-bb680e5fe0c8");

You can also parse UUIDs without needing any crate features:

use uuid::{Uuid, Version};

let my_uuid = Uuid::parse_str("67e55044-10b1-426f-9247-bb680e5fe0c8")?;

assert_eq!(Some(Version::Random), my_uuid.get_version());

If you'd like to parse UUIDs really fast, check out the uuid-simd library.

For more details on using uuid, see the library documentation.



Licensed under either of

at your option.

FOSSA Status


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.