All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
cargo update
- minimal Rust version is now 1.74.0
2.0.0 - 2023-01-28
- optional support for
schemars
androcket
. Thanks to Rinat Shigapov for the contribution!
- minimal Rust version is now 1.60.0
- moved
doc-comment
to[dev-dependencies]
by usingcfg(doctest)
(see cfg(doctest) is stable and you should use it) cargo update
- switched default dependency from
chrono
totime
- prefer
time
overchrono
to obtain current time if both dependencies are enabled. - added
#[must_use]
toulid.offsetdatetime()
. - fix executable to work with either
chrono
ortime
.
ulid-generation
andulid-generation-time
dependency sets
1.0.0 - 2022-01-22
- optionally use
time
instead ofchrono
. Thanks to tyhi for the contribution!
- minimum supported Rust version is now 1.56
cargo update
- edition = “2021”
0.11.0 - 2021-07-04
- minimum supported Rust version is now 1.41.0
cargo update
0.10.1 - 2021-01-25
cargo update
- dependency on
time 0.1
by disablingoldclock
feature ofchrono
crate
0.10.0 - 2020-08-23
- support postprocessing of monotonic ULID values
next_monotonic_from_timestamp_with_rng_and_postprocessor
next_strictly_monotonic_from_timestamp_with_rng_and_postrocessor
cargo update
- Requires Rust 1.40 or later
0.9.3 - 2020-02-24
cargo update
#![deny(warnings)]
anti-pattern
0.9.2 - 2020-01-10
- criterion 0.3
cargo update
- test of deprecated function result to fix build on 1.42-nightly
0.9.1 - 2019-08-17
- Rust Safety Dance link
- fuzzing
- rand 0.7
- minor
Display
performance improvement
0.9.0 - 2019-04-25
- test code in
README.md
using doc-comment impl TryFrom<&[u8]> for Ulid
- Miri support
- all dependencies are now optional but enabled by default
Ulid::from_slice(&[u8])
in favor ofimpl TryFrom<&[u8]> for Ulid
0.8.0 - 2019-03-18
Ulid::from_slice(&[u8])
- optional serde support
0.7.0 - 2018-12-07
- edition = “2018”
- rand 0.6.1
0.6.1 - 2018-11-16
- rand 0.6.0
0.6.0 - 2018-10-24
- derive
Copy
forUlid
.
- renamed
Ulid::new()
toUlid::generate()
. - renamed
new_ulid_string()
togenerate_ulid_string()
. - renamed
new_ulid_bytes()
togenerate_ulid_bytes()
.
- derive
Default
forUlid
.
0.5.0 - 2018-08-09
- support for monotonic ULID values. See
next_monotonic
andnext_strictly_monotonic
.
- updated dependencies.
0.4.1 - 2018-07-02
description()
ofDecodingError
is now returning deprecation message like Rust 1.27.
0.4.0 - 2018-05-23
append_crockford_u64_tuple
andparse_crockford_u64_tuple
.
- A
Ulid
is now using a private(u64, u64)
instead of being au128
. This is a non-breaking change. - Using
rand 0.5.0
dependency. append_crockford_u128
appends exactly 26 characters.parse_crockford_u128
requires exactly 26 characters.
append_crockford_u64
andparse_crockford_u64
.
- Performance regression. This version is faster than
0.2.0
, even withrand 0.4.2
.
0.3.0 - 2018-05-12
- Conversion of
Ulid
to and fromu128
. append_crockford_u128
andparse_crockford_u128
.parse()
quickstart example.- Derived
Ord
,Eq
andHash
traits forUlid
. - Proper
rusty_ulid
executable functionality including example usage documentation. - Apache-2.0 license. This crate is now dual-licensed.
- A
Ulid
is now using anu128
instead of being a(u64, u64)
. This is a breaking change if you previously accessed the tuple elements directly. DecodingError::InvalidChar
now contains achar
instead ofOption<char>
.append_crockford
was renamed toappend_crockford_u64
.parse_crockford
was renamed toparse_crockford_u64
.- Panic message is now using proper ISO 8601 formatting for overflow datetime
+10889-08-02T05:31:50.655Z
.
Copy
trait fromUlid
.
0.2.1 - 2018-04-10
- Documentation test of
Ulid::from_timestamp_with_rng
.
0.2.0 - 2018-04-10
- This changelog.
- Some criterion benchmarks. Run the benchmarks by executing
cargo bench
. DecodingError::DataTypeOverflow
that is used byparse_crockford
andUlid::from_str
to indicate an overflow. Overflow means that the given string contains more bits than the respective data type could handle.
parse_crockford
can now parse strings of length 13 if they don't cause anu64
overflow. This means thatFZZZZZZZZZZZZ
can still be parsed butG000000000000
will cause aDecodingError::DataTypeOverflow
.
Strings of length 14 or more still result inDecodingError::InvalidLength
.Ulid::from_str
is now returning properly detecting timestamp overflows. This means that7ZZZZZZZZZZZZZZZZZZZZZZZZZ
can still be parsed but80000000000000000000000000
will cause aDecodingError::DataTypeOverflow
.
Strings of length different than 26 still result inDecodingError::InvalidLength
.Ulid::from_timestamp_with_rng
will now panic iftimestamp
is bigger than0xFFFF_FFFF_FFFF
.
This means thatUlid::new()
will start to panic after+10889-08-02T05:31:50.655Z
.
#Y10889Bug
0.1.0 - 2018-04-09
- Everything. This was the initial release.