Code Monkey home page Code Monkey logo

uuid's Introduction

uuid

Latest Version Join the chat at https://gitter.im/uuid-rs/Lobby Minimum rustc version Build Status Build Status Average time to resolve an issue Percentage of issues still open FOSSA Status


Generate and parse UUIDs.

Provides support for Universally Unique Identifiers (UUIDs). A UUID is a unique 128-bit number, stored as 16 octets. UUIDs are used to assign unique identifiers to entities without requiring a central allocating authority.

They are particularly useful in distributed systems, though they 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.

Dependencies

By default, this crate depends on nothing but std and cannot generate Uuids. You need to enable the following Cargo features to enable various pieces of functionality:

  • v1 - adds the Uuid::new_v1 function and the ability to create a V1 using an implementation of uuid::v1::ClockSequence (usually uuid::v1::Context) and a timestamp from time::timespec.
  • v3 - adds the Uuid::new_v3 function and the ability to create a V3 UUID based on the MD5 hash of some data.
  • v4 - adds the Uuid::new_v4 function and the ability to randomly generate a Uuid.
  • v5 - adds the Uuid::new_v5 function and the ability to create a V5 UUID based on the SHA1 hash of some data.
  • serde - adds the ability to serialize and deserialize a Uuid using the serde crate.

You need to enable one of the following Cargo features together with v3, v4 or v5 feature if you're targeting wasm32-unknown-unknown target:

  • stdweb - enables support for OsRng on wasm32-unknown-unknown via stdweb combined with cargo-web
  • wasm-bindgen - wasm-bindgen enables support for OsRng on wasm32-unknown-unknown via wasm-bindgen

By default, uuid can be depended on with:

[dependencies]
uuid = "0.8"

To activate various features, use syntax like:

[dependencies]
uuid = { version = "0.8", features = ["serde", "v4"] }

You can disable default features with:

[dependencies]
uuid = { version = "0.8", default-features = false }

Examples

To parse a UUID given in the simple format and print it as a urn:

use uuid::Uuid;

fn main() -> Result<(), uuid::Error> {
    let my_uuid =
        Uuid::parse_str("936DA01F9ABD4d9d80C702AF85C822A8")?;
    println!("{}", my_uuid.to_urn());
    Ok(())
}

To create a new random (V4) UUID and print it out in hexadecimal form:

// Note that this requires the `v4` feature enabled in the uuid crate.

use uuid::Uuid;

fn main() {
    let my_uuid = Uuid::new_v4();
    println!("{}", my_uuid);
    Ok(())
}

Strings

Examples of string representations:

  • simple: 936DA01F9ABD4d9d80C702AF85C822A8
  • hyphenated: 550e8400-e29b-41d4-a716-446655440000
  • urn: urn:uuid:F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4

References


License

Licensed under either of

at your option.

FOSSA Status

Contribution

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.

uuid's People

Contributors

kinggoesgaming avatar bors[bot] avatar alexcrichton avatar dylan-dpc avatar kodraus avatar redrield avatar huonw avatar veykril avatar frewsxcv avatar zrzka avatar dns2utf8 avatar bors avatar rrichardson avatar brson avatar chills42 avatar pcwalton avatar steveklabnik avatar sfackler avatar mokeyish avatar brendanzab avatar kroisse avatar ammgws avatar hecsalazarf avatar amadeusine avatar richo avatar gowthamsadasivam avatar sinistersnare avatar aochagavia avatar erickt avatar heroesgrave avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.