A high fidelity time management library in Rust
This is probably the last release of version 3.x. There's a fair amount of small bugs here and there in 3.x, and these aren't trivial to fix. The architecture changes introduced by @gwbres and I for the development of 4.x should fix all of those in one go.
Also, version 4.0 will likely switch to the Mozilla Public License from Apache 2: if you have concerns about this, please head over to https://github.com/nyx-space/hifitime/discussions/274 to voice them. From the user point of view, there should be absolutely no change, even if you're selling code that uses an unmodified version of Hifitime.
This release is published as 4.0.0-dev
on crates.io and 4.0.0.dev0
on PyPi. This was a mistake. It should have been 3.10.0
. That's probably for the better though since it introduces one breaking change. Version 4.0.0 will introduce several breaking changes and a new architecture.
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.9.0...3.10.0
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.6...3.9.0
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.5...3.8.6
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.4...3.8.5
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.3...3.8.4
With a bit of luck, this will be the last release of 3.x as version 4 makes its way to production. Version 4 will bring more consistency in time scale handling by not converting everything to TAI, but using the initialization time scale whenever possible. Follow the progress on https://github.com/nyx-space/hifitime/milestone/14 and don't hesitate to propose features or contribute. Thanks
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.2...3.8.3
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.8.1...3.8.2
Thanks again to @gwbres for his work in this release!
src/timeunits.rs
by @gwbres, cf. #189
Duration
and Epoch
, and introduce kani::Arbitrary
to Duration
and Epoch
for users to formally verify their use of time, cf. #192
LeapSecondsFile::from_path
(requires the std
feature to read the file), cf. #43.Ut1Provider
structure with data from the JPL Earth Orientation Parameters, or just use Ut1Provider::download_short_from_jpl()
to automatically download the data from NASA JPL.strptime
and strftime
equivalents from C89 are now supported, cf. #181. Please refer to the documentation for important limitations and how to build a custom formatter.Full Changelog: https://github.com/nyx-space/hifitime/compare/3.7.0...3.8.0
Full Changelog: https://github.com/nyx-space/hifitime/compare/3.6.0...3.7.0
min
and max
function which respectively returns a copy of the epoch/duration that is the smallest or the largest between self
and other
, cf. #164.>
, >=
, <
, <=
, ==
, and !=
. Epoch now supports init_from_gregorian
with a time scape, like in Rust. Epochs can also be subtracted from one another using the timedelta
function, cf. #162.Full Changelog: https://github.com/nyx-space/hifitime/compare/3.5.0...3.6.0