Jiff is a datetime library for Rust that encourages you to jump into the pit of success. The focus of this library is providing high level datetime primitives that are difficult to misuse and have reasonable performance.
And as a user of Jiff, I must say that it is very nice to use. Well thought out API, making date time handling less of a pain. So, nice work @[email protected]
Jiff is a datetime library for Rust that encourages you to jump into the pit of success. The focus of this library is providing high level datetime primitives that are difficult to misuse and have reasonable performance. Jiff supports automatic and seamless integration with the Time Zone Database, DST aware arithmetic and rounding, formatting and parsing zone aware datetimes losslessly, opt-in Serde support and a whole lot more.
Jiff takes enormous inspiration from Temporal, which is a TC39 proposal to improve datetime handling in JavaScript.
As the author of Jiff, I don’t like it either. But I didn’t see any other feasible way to improve Rust’s datetime offering. (The sibling comment links to a more in depth answer.)
It would be better if there was one datetime library. It would be better if
chrono
had just been done “right” from the start. But it wasn’t. So I can either go to thechrono
maintainers and say, “please let me, a non-expert in datetimes, have full creative control over the project” or I can go build something on my own and, in the process, become an expert. Otherwise, we stay stuck in our local optimum.As a fan of xkcd, this is probably least favorite xkcd. On the one hand, yes, it aptly expresses frustration. On the other, it’s easy to use as a club against progress itself. Sometimes you need to start fresh to move the needle. Rust is a perfect example of that itself.