uhlc
A Unique Hybrid Logical Clock for Rust.
0.9.0
5.5M downloads/mo
#4345 most downloaded on crates.io
atolab/uhlc-rs
What this package is like to depend on
Last release 7 months ago
12 Jan 2026
Ships fairly regularly
a new release about every 4 months
Some releases are documented
notes for 10 of 19 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
19 releases · first in 2020
2 releases in the last 12 months
see the full history below
Release timeline
19 releases · Jul 2020 to Jan 2026Releases
latest 19-
0.9.012 Jan 2026Release notes
Open source →What's Changed
- feat:
no-allocby @Hennzau in #28
⚠️ API changes regarding errors:ParseIDErrorchanged to enumParseNTP64Errorchanged to enumParseTimestampErrorchanged to enumupdate_with_timestampreturnsResult<(), ExceedingDeltaError>
New Contributors
Full Changelog: 0.8.2...0.9.0
- feat:
-
0.8.203 Oct 2025 -
0.8.119 May 2025Release notes
Open source →What's Changed
- feat: add support for linux physical clocks by @alokpr in #20
- feat: add utility to convert NTP64 to nanos by @alokpr in #21
- fix: add missing test config annotation by @alokpr in #23
- fix conversion to NTP64 from zero nanoseconds by @alokpr in #22
- fix: replaced "deature" with "feature" by @alokpr in #19
- doc: add a note on monotonic_time_clock by @JEnoch in #24
- internal: use div_ceil() in subsec_nanos()->u32 by @JEnoch in #25
- Bump some dependencies by @JEnoch in #26
New Contributors
Full Changelog: 0.8.0...0.8.1
-
0.8.003 Jul 2024Release notes
Open source →What's Changed
- Change conversion of NTP64 and Timestamp to/from String (#16).
For bothNTP64andTimestamptypes the default formatting used byDisplaytrait (and thus byToStringtrait) changed. RFC3339 format was used to represent theNTP64type, which was loosing precision and was not bijective withFromStrtrait (see #15). Now unsigned integer decimal representation is used.
Theto_string_rfc3339_lossy()andparse_rfc3339()methods have been added for explicit conversion to RFC3339 format.
Full Changelog: 0.7.0...0.8.0
- Change conversion of NTP64 and Timestamp to/from String (#16).
-
0.7.025 Mar 2024Release notes
Open source →What's Changed
- Change internal representation of
IDfromNonZeroU128to[u8;16].
A change in Rust 1.77 caused the memory alignment for u128 to differ depending the platform, and thus leading to issues for usage through FFI (see eclipse-zenoh/zenoh-c#295). Note that this is not a change of API (just ABI)
Full Changelog: 0.6.3...0.7.0
- Change internal representation of
-
0.6.315 Sep 2023Release notes
Open source →What's Changed
- Documentation change only: revise comment of
NTP64::as_secs_f64()
Full Changelog: 0.6.2...0.6.3
- Documentation change only: revise comment of
-
0.6.215 Sep 2023Release notes
Open source → -
0.6.125 Aug 2023Release notes
Open source →What's Changed
- Bump spin to 0.9.8 @Dylan-DPC in #10
- Fix parsing and displaying of IDs from string by @Mallets in #12
New Contributors
- @Dylan-DPC made their first contribution in #10
Full Changelog: 0.6.0...0.6.1
-
0.6.030 May 2023Release notes
Open source →Changelog:
- API change: Remove UUID support (#9).
uhlc::IDis still a non-zero u128, but not necessarily a UUID. As a consequence:- The
uhlc::ID::from(uuid: Uuid)operation has been removed.
An ID can still be created from an Uuid as such:
let id = ID::try_from([uuid.to_bytes_le()](uuid::Uuid::new_v4())).unwrap() - The
uhlc::ID::as_slice(&self)operation has been removed.
A minimal slice (i.e.: only non-zero bytes) of the le-encoded ID can be retrieved as such:
let id_as_slice = id.to_le_bytes()[..id.size()] - The
uhlc::ID::to_le_bytes(&self)operation has been added - The
uhlc::ID::rand() -> Selfoperation has been added
- The
- API change: Remove UUID support (#9).
-
0.5.223 Jan 2023Release notes
Open source → -
0.5.127 Jul 2022Nothing published for this version
-
0.5.014 Jun 2022Nothing published for this version
-
0.4.128 Jan 2022Nothing published for this version
-
0.4.023 Nov 2021Nothing published for this version
-
0.3.125 Aug 2021Nothing published for this version
-
0.3.010 May 2021Nothing published for this version
-
0.2.105 Nov 2020Nothing published for this version
-
0.2.001 Sep 2020Nothing published for this version
-
0.1.023 Jul 2020Nothing published for this version