A Rust datetime library focused on correctness and ease of use, with seamless time zone database integration.
Jiff is a datetime library for the Rust programming language that provides high-level primitives for handling dates, times, and time zones. It solves the common pitfalls of datetime manipulation by encouraging correct usage through its API design, integrating automatically with the IANA Time Zone Database and supporting DST-aware arithmetic.
Rust developers building applications that require robust datetime handling, such as scheduling systems, logging, data processing pipelines, or any software dealing with international time zones.
Developers choose Jiff for its focus on correctness and ease of use—it makes datetime operations hard to misuse while providing seamless time zone support. Its design is inspired by the Temporal proposal, offering a modern alternative to existing Rust datetime libraries with an emphasis on API clarity and platform consistency.
A datetime library for Rust that encourages you to jump into the pit of success.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly uses the IANA Time Zone Database with embedded support for Windows, ensuring consistent behavior across Unix and Windows platforms as per the PLATFORM.md documentation.
Correctly handles Daylight Saving Time transitions in date calculations, preventing common errors like off-by-one-hour mistakes in scheduling.
Provides zone-aware serialization and deserialization without data loss, exemplified by the RFC 3339 parsing and formatting in the example code.
Encourages correct usage through high-level primitives that are hard to misuse, inspired by the Temporal proposal to reduce datetime pitfalls.
The API is not finalized, with the README noting slipped release deadlines and potential breaking changes until version 1.0, which may affect long-term projects.
Explicitly prioritizes correctness over speed, meaning performance optimizations are limited and it may lag behind libraries like `time` in benchmarks.
Relies on contributor pull requests for obscure platforms, as admitted in the platform support section, which could hinder adoption in specialized environments.