ids_service
Library that allows generating unique ids. It tried to keep cache filled using background threads to fill it. If the cache is empty (the number of requests is too high) an id is calculated on the fly. This will slow down obtaining the id but there is no error when the cache is empty. To generate unique ids the library uses an array of bytes with values from a random number generator and a timestamp as nanoseconds since January 1, 1970 UTC and finally create a hash from both data. The size of random block is equal to the size of hash sha512 = 64 bytes.
So the size of data block to calculate a unique id using sha512 equal 64 bytes random + 8 bytes timestamp.
The hash algorithm can be one from crypto::sha3::Sha3Mode
The id can be:
- Vec u8
- String encoded hexadecimal lower case
- String as Base64
- String as Base32
Quick Start
Use of cached service:
extern crate ids_service;
use crate;
Use of helper function:
extern crate ids_service;
use crate*;
Run example
;
Create ten millions of ids (sha512) and read it all. Around 17 seconds to fill the cache 23 seconds with read
Links
Releases
- 1.0.1 Add ten_million example
- 1.0.0 Refactor to no generic service, it uses cryptographic hash algorithm only. The internal multi-threads model is more efficient. The API is not compatible with 0.1.6.
- 0.1.6 add function to read configuration from toml file read_configuration_from_toml
- 0.1.5 Update readme and comments
- 0.1.4 Add two helper function to create on fly id create_id_as_u128 and create_id_as_string
- 0.1.0 to 0.1.3 Non functional, some adaptation for crates.io and bitbucket pipelines