Skip to content

Releases: mplanchard/cuid-rust

cuid v2.0.1

19 Apr 03:37
v2.0.1
b0607d3

Choose a tag to compare

cuid v2.0.1

Note that starting with this release, releases on GH will only be made
for the main cuid crate. Tags will still be created for both cuid
and the cuid1 and cuid2 subcrates, though.

cuid2 v0.1.6

Changed

  • 15-20% performance improvement for cuid2 generation, due mostly to
    optimizations in create_entropy(), along with a few other smaller
    optimizations

cuid v2.0.0

19 Apr 00:26
v2.0.0
2f9610a

Choose a tag to compare

This release contains breaking changes, specifically the removal of functions
that were previously marked as deprecated. Please see the notes below for details.

Removed

  • The top-level cuid(), slug(), and is_cuid() functions have been
    removed. These were implicitly yielding v1 CUIDs, and it is now required
    for CUID version to be explicitly specified.

    Importing cuid::v1::* or qualifying each function like v1::cuid() is
    equivalent to the removed top-level functions.

    In addition, version-specific top-level function names like cuid1(),
    cuid1_slug(), and is_cuid1() are provided.

This release also pulls in the following releases of the cuid1 and cuid2
subpackages:

These are both patch releases, with no interface-level changes.

cuid2 v0.1.5

19 Apr 00:18
cuid2-v0.1.5
5cd15d5

Choose a tag to compare

Changed

  • Updated a variety of dependencies, Rust edition, and so on.
  • Updated transitive dependency specification for getrandom to
    current version, resolves #19

cuid1 v0.1.1

19 Apr 00:17
cuid1-v0.1.1
5cd15d5

Choose a tag to compare

Changed

  • Updated a variety of dependencies, Rust edition, and so on.
  • Updated transitive dependency specification for getrandom to
    current version, resolves #19

cuid2 v0.1.4

13 Jan 18:23
cuid2-v0.1.4
afbe9ce

Choose a tag to compare

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

13 Jan 19:04
cuid1-v0.1.0
c89550a

Choose a tag to compare

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

  • (v1) Replaced std::sys::SystemTime with web_time::SystemTime so
    that CUID generation does not panic in WASM builds

cuid v1.3.3, cuid2 v0.1.3

19 Aug 00:33
cuid-v1.3.3
91fc284

Choose a tag to compare

cuid2 v0.1.3, cuid 1.3.3

Upcoming

  • The next major release will be a breaking release, dropping the
    top-level cuid(), slug(), and is_cuid() functions in favor of
    their version-specific counterparts (see below).
  • I also intend to split the v1 CUID functionality out into its own
    crate and publish it independently, like I have done for cuid2.
    The top-level cuid crate will then pull in the sub-crates depending
    on features, making it easy to just pull the CUID version you need.

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.2

08 Aug 15:46
cuid2-v0.1.2
319ffa3

Choose a tag to compare

cuid2 v0.1.2

Changed

  • Internal updates to match updated CUID construction logic in the reference
    implementation
    ,
    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

cuid2-v0.1.1

02 Aug 14:49
cuid2-v0.1.1
ac727a6

Choose a tag to compare

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.2

02 Aug 14:49
cuid-v1.3.2
ac727a6

Choose a tag to compare

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