Crates.io | uniqueid |
lib.rs | uniqueid |
version | 0.2.6 |
source | src |
created_at | 2022-05-09 00:23:46.236049 |
updated_at | 2022-05-18 22:21:04.151708 |
description | Generates a unique hash/identifier for a system given a set of parameters. |
homepage | https://github.com/ChecksumDev/uniqueid |
repository | |
max_upload_size | |
id | 582832 |
size | 57,394 |
Generates a unique hash/identifier for a system given a set of parameters.
use uniqueid::{IdentifierBuilder, IdentifierType};
let mut builder = IdentifierBuilder::default();
builder.name("test");
builder.add(IdentifierType::CPU);
builder.add(IdentifierType::RAM);
builder.add(IdentifierType::DISK);
let identifier = builder.build();
println!("{}", identifier.to_string(false)); // false = do not hash the identifier (useful for debugging)
UniqueID uses its own specification.
The spec consists of three parts:
- The Identifier; []
- The IdentifierType; ()
- The IdentifierTypeData; (a=b, ...)
A basic identifier would look like this:
NAME[TYPE(a=b, ...), ...]
NAME - Optional name of the identifier. (Can be used as a label or salt)
TYPE - The type of identifier, e.g. CPU, GPU, etc.
DATA - The data for the identifier, e.g. Vendor=Intel, Model=Xeon E5-2670
This is a very basic example of an identifier, and most use cases will have more types, more data, and hash the output.
This software is licensed under the GNU General Public License v3.0
For more information, see the LICENSE file in the root directory of this project or see here.