Tags: mplanchard/cuid-rust
Tags
cuid2-v0.1.4 Fixed - Replaced `std::sys::SystemTime` with `web_time::SystemTime` so that CUID generation does not panic in WASM builds.
cuid1 v0.1.0 Technically, this is a new crate! This was published containing the fix below. This will be included in the next major version of `cuid`, which will be a breaking release in which the top-level `cuid()` function is replaced by explicit calls to either `cuid1()` or `cuid2()`. Fixed: - Replaced `std::sys::SystemTime` with `web_time::SystemTime` so that CUID generation does not panic in WASM builds
cuid-v1.3.3 Added - Provide new top-level functions from the `cuid` library to disambiguate CUID versions: - `cuid::cuid1()`: generate a v1 CUID, replacement for deprecated `cuid()` - `cuid::cuid1_slug()`: generate a v1 CUID slug, replacement for deprecated `slug()` - `cuid::is_cuid1()` - check whether a string looks like it could be a v1 CUID, replacement for deprecated `is_cuid()` - `cuid::is_cuid1_slug()` - check whether a string looks like it could be a v1 CUID slug, replacement for deprecated `is_cuid()` - `cuid::cuid2_slug()` - generate a v2 CUID of length 10 - `cuid::is_cuid2_slug()` - check whether a string looks like could be a v2 CUID slug - `cuid::Cuid2Constructor` - expose the v2 CUID constructor interface - Added a couple of functions to `cuid2` for parity with v1 functions: - `cuid2::slug()` - generate a v2 CUID of length 10 - `cuid2::is_slug()` - check whether a string looks like could be a v2 CUID slug - Added support for webassembly builds. Builds are tested for `wasm32-unknown-unknown` and `wasm32-wasi` targets. I intend to add Javascript bindings and publish npm packages in an upcoming update. - The system hostname is not available to WASM, so for the CUID v1 fingerprint algorithm, we instead use a v4 UUID. This does mean the fingerprint will not be consistent on a host over time, which slightly diverges from the behavior of CUIDs on other targets. Please open an issue if this is a problem for you. Changed - CUID v1 functions are no longer marked as deprecated. The original JS library was marked as insecure and deprecated by its creators, but this was merely due to their personal stance that any k-sortable IDs are insecure and should not be used. This library's author does not share the same view. New functions have been provided to better disambiguate creating v1 vs v2 IDs, and functions that do not explicitly specify a version are still marked as deprecated. - The CUID binaries now randomize the counter prior to generating an ID, rather than always starting at 0. This ensures that commandline-generated CUIDs do not lose entropy relative to library-generated CUIDs due to always having the same counter value. - The `cuid2::is_cuid()`/`cuid::is_cuid2()` function has been improved and now rejects more strings that are invalid CUIDs (contribution by @stormshield-kg) - The `cuid2` binary now supports an optional `--length|-l` argument, which enables specifying the length of the generated CUID (contribution by @der-fruhling) Removed - Removed old benchmarks and `#[cfg(nightly)]` blocks. Criterion benchmarks are the important ones, and those remain.
cuid2-v0.1.3 Added - Added a couple of functions to `cuid2` for parity with v1 functions: - `cuid2::slug()` - generate a v2 CUID of length 10 - `cuid2::is_slug()` - check whether a string looks like could be a v2 CUID slug - Added support for webassembly builds. Builds are tested for `wasm32-unknown-unknown` and `wasm32-wasi` targets. I intend to add Javascript bindings and publish npm packages in an upcoming update. Changed - The CUID binaries now randomize the counter prior to generating an ID, rather than always starting at 0. This ensures that commandline-generated CUIDs do not lose entropy relative to library-generated CUIDs due to always having the same counter value. - The `cuid2::is_cuid()`/`cuid::is_cuid2()` function has been improved and now rejects more strings that are invalid CUIDs (contribution by @stormshield-kg) - The `cuid2` binary now supports an optional `--length|-l` argument, which enables specifying the length of the generated CUID (contribution by @der-fruhling)
cuid2 v0.1.2 Changed: cuid2-v0.1.2...HEAD - Internal updates to match updated CUID construction logic in [the reference implementation](https://github.com/paralleldrive/cuid2/blob/main/src/index.js), specifically: - Simplified hashing function, no longer adding additional entropy in addition to building a hash - Increased range of possible values for counter initialization - Random numbers for entropy are now random numbers from [0, 36), rather than a random choice from a static array of prime numbers
cuid 1.3.2, cuid2 0.1.1 Added - cuid/cuid2: Moved common utility logic out into a `cuid-util` crate - cuid2: #10: New `is_cuid2` function and `is_cuid` alias Changed - cuid: Replaced base conversion logic in `cuid` with the logic in `cuid-util`, yielding a solid performance improvement for CUID generation (10-20%) - cuid2: Added `#[inline]` annotations for main cuid2 functions Fixed - cuid: 94d4cd0: Removed unused `bigint` dependency - cuid2: #11: Moved proptest to dev dependencies
cuid 1.3.2, cuid2 0.1.1 Added - cuid/cuid2: Moved common utility logic out into a `cuid-util` crate - cuid2: #10: New `is_cuid2` function and `is_cuid` alias Changed - cuid: Replaced base conversion logic in `cuid` with the logic in `cuid-util`, yielding a solid performance improvement for CUID generation (10-20%) - cuid2: Added `#[inline]` annotations for main cuid2 functions Fixed - cuid: 94d4cd0: Removed unused `bigint` dependency - cuid2: #11: Moved proptest to dev dependencies
cuid v1.3.1 - Updated deprecation warnings to mention the `cuid2` crate
Add cuid2 crate and cuid2() function - The CUID v1 algorithm is now [deprecated](#4), so all cuid v1 functions have been marked as such. Please use the new `cuid2` crate or the `cuid2()` function re-exported from the `cuid` crate. - The CI suite now runs both `cargo clippy` and `cargo audit` ([edb22b5]) - Added nix files for dependency management ([8d2c180]) - Added the `cuid2` crate, providing library and binary for v2 of the CUID standard - Added `cuid2()` function in the `cuid` crate - Upgraded to use the Rust 2021 edition ([cdc594c]) - Switched from `lazy_static` to `once_cell` ([3333dd4]) - Added `inline` directive to external functions ([8714f67])
Add cuid2 crate - The CUID v1 algorithm is now [deprecated](#4), so all cuid v1 functions have been marked as such. Please use the new `cuid2` crate or the `cuid2()` function re-exported from the `cuid` crate. - The CI suite now runs both `cargo clippy` and `cargo audit` ([edb22b5]) - Added nix files for dependency management ([8d2c180]) - Added the `cuid2` crate, providing library and binary for v2 of the CUID standard - Added `cuid2()` function in the `cuid` crate - Upgraded to use the Rust 2021 edition ([cdc594c]) - Switched from `lazy_static` to `once_cell` ([3333dd4]) - Added `inline` directive to external functions ([8714f67])
PreviousNext