diff options
Diffstat (limited to 'third_party/rust/uuid/README.md')
-rw-r--r-- | third_party/rust/uuid/README.md | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/third_party/rust/uuid/README.md b/third_party/rust/uuid/README.md new file mode 100644 index 0000000000..70a0799191 --- /dev/null +++ b/third_party/rust/uuid/README.md @@ -0,0 +1,99 @@ +# `uuid` + +[![Latest Version](https://img.shields.io/crates/v/uuid.svg)](https://crates.io/crates/uuid) +![Minimum rustc version](https://img.shields.io/badge/rustc-1.46.0+-yellow.svg) +[![Continuous integration](https://github.com/uuid-rs/uuid/actions/workflows/ci.yml/badge.svg)](https://github.com/uuid-rs/uuid/actions/workflows/ci.yml) + +Here's an example of a UUID: + +```text +67e55044-10b1-426f-9247-bb680e5fe0c8 +``` + +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`: + +```toml +[dependencies.uuid] +version = "1.3.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: + +```rust +use uuid::Uuid; + +let id = Uuid::new_v4(); +``` + +If you have a UUID value, you can use its string literal form inline: + +```rust +use uuid::{uuid, Uuid}; + +const ID: Uuid = uuid!("67e55044-10b1-426f-9247-bb680e5fe0c8"); +``` + +You can also parse UUIDs without needing any crate features: + +```rust +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`](https://github.com/nugine/uuid-simd) +library. + +For more details on using `uuid`, [see the library documentation](https://docs.rs/uuid/1.3.0/uuid). + +## Minimum Supported Rust Version (MSRV) + +The minimum supported Rust version for `uuid` is documented in +CI. It may be bumped in minor releases as necessary. + +## References + +* [`uuid` library docs](https://docs.rs/uuid/1.3.0/uuid). +* [Wikipedia: Universally Unique Identifier](http://en.wikipedia.org/wiki/Universally_unique_identifier). +* [RFC4122: A Universally Unique IDentifier (UUID) URN Namespace](http://tools.ietf.org/html/rfc4122). + +--- +# License + +Licensed under either of + +* Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0) +* MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT) + +at your option. + + +[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fuuid-rs%2Fuuid.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fuuid-rs%2Fuuid?ref=badge_large) + +## 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.
\ No newline at end of file |