Chrono

Timezone-aware date and time handling for Rust, with correct calendar operations and flexible strftime-style formatting.

Library
Cargo
v0.4.45
3,927 stars
MIT OR Apache-2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
65 /100 Good
Development Activity 36
Maintenance 52
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
84 /100 Excellent
Architecture 88
Code Quality 85
Innovation 82
Learning Curve 85

Chrono is the de facto standard date and time library for Rust, providing timezone-aware DateTime types alongside naive, timezone-agnostic equivalents. It implements the proleptic Gregorian calendar with correct handling of leap years and ambiguous or invalid local times, returning Option or a dedicated MappedLocalTime enum rather than panicking on edge cases.

With over 680 million downloads on crates.io, Chrono underpins the Rust ecosystem’s date and time needs across web services, CLIs, and embedded targets. It ships no_std-compatible core types via opt-in alloc/std features, supports strftime-style parsing and formatting, integrates with Serde for serialization, and pairs with the companion chrono-tz crate for full IANA timezone database support.

What You Get

  • Timezone-aware DateTime<Tz> and naive (timezone-agnostic) NaiveDate/NaiveTime/NaiveDateTime types
  • strftime/strptime-style formatting and parsing via the format module
  • TimeDelta (duration) arithmetic with checked, non-panicking operations
  • Optional Serde support for serializing and deserializing date and time types
  • A no_std core with opt-in alloc, std, and clock features for constrained targets
  • WASM support via the wasmbind feature, interfacing with the JS Date API

Common Use Cases

  • Web service timestamps - Backend services use DateTime<Utc> to record and compare event timestamps consistently across time zones.
  • Log and report formatting - CLI tools and reporting pipelines use Chrono’s strftime-style formatting to render human-readable dates.
  • User-facing scheduling - Applications that convert between a user’s local time and UTC, such as calendars and reminders, rely on Local and FixedOffset conversions.
  • Data parsing - ETL and data-processing code parses date and time strings from external APIs and files using Chrono’s flexible parsing.

Under The Hood

Architecture - Chrono splits into a naive, timezone-agnostic layer (src/naive/{date,time,datetime}) and a timezone-aware layer (src/datetime/mod.rs), which wraps a naive datetime together with an offset implementation such as src/offset/{utc.rs,fixed.rs,local}, unified via the TimeZone trait in src/traits.rs so that DateTime<Tz> is generic over any offset type. The format module (src/format/{parse.rs,formatting.rs,strftime.rs,scan.rs}) implements a token-based, strftime-inspired parser and formatter decoupled from the core date types via an intermediate Parsed struct (src/format/parsed.rs), while low-level calendar arithmetic for the proleptic Gregorian calendar is isolated in src/naive/internals.rs, keeping day-counting math out of the public API surface.

Tech Stack - Chrono is a pure-Rust crate (100% Rust per repository language stats), targeting edition 2021 with an MSRV of 1.62. Its only non-optional dependency is num-traits for generic numeric trait bounds; everything else (serde, rkyv, arbitrary, defmt, pure-rust-locales, wasm-bindgen/js-sys, windows-link, iana-time-zone) is gated behind opt-in Cargo features, reflecting a no_std-first design where even std, alloc, and clock are themselves feature flags. Platform-specific dependencies are split via target.'cfg(...)' sections in Cargo.toml for wasm, Windows, and Unix targets.

Code Quality - The crate carries 333 #[test]-annotated tests embedded alongside implementation code (e.g. src/datetime/tests.rs), plus integration tests under tests/ and dedicated fuzz/ and bench/ directories for fuzzing and performance regression tracking. CI, defined in .github/workflows/test.yml and lint.yml, runs against the pinned MSRV toolchain. The codebase favors returning Option/MappedLocalTime over panicking for fallible operations, per the README’s explicit design goal; internal unwrap() calls that do appear are concentrated in code paths already guarded by prior range checks, a common and accepted pattern in systems-level Rust rather than unchecked risk. Naming is consistently idiomatic Rust (snake_case functions, PascalCase types) throughout.

API Design - Chrono’s public API centers on a small set of composable types (DateTime<Tz>, NaiveDate, NaiveTime, NaiveDateTime, TimeDelta) with consistent constructor and accessor naming (e.g. from_ymd_opt, with_hour) that return Option rather than panicking on invalid input. Roughly 9,500 lines of /// doc comments across the crate give near-complete rustdoc coverage with runnable examples. Getting started requires almost no boilerplate — Utc::now() or NaiveDate::from_ymd_opt(...) — though the naive-vs-timezone-aware type split and the number of Cargo feature flags needed for full functionality (clock, alloc, serde, unstable-locales) add a real, if well-documented, learning curve for newcomers used to simpler date libraries.

Used by 59 apps in this directory

Rust
46%
MIT

Svix

Automation · Developer Tools

3,463

Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
Rust 46%
C# 16%
Updated 1 weeks ago
TypeScript
67%
Apache 2.0

tabularis

Databases · Developer Tools

5,270

Open-source desktop SQL workspace with built-in PostgreSQL, MySQL, and SQLite drivers, SQL notebooks, a visual query builder, and a built-in MCP server for AI agents like Claude and Cursor.

View details
84
Repo Health
89
Technical
66
Dependency
Built with
TypeScript 67%
Rust 31%
Updated 6 days ago
C
74%
AGPL 3.0

TDengine

Databases

25,168

A high-performance, open-source time-series database built in C for IoT, connected vehicles, and industrial monitoring workloads, with built-in stream processing, caching, and data subscription.

View details
97
Repo Health
71
Technical
65
Dependency
Built with
C 74%
C++ 19%
Updated 1 weeks ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 1 weeks ago
Rust
79%
Apache 2.0

TensorZero

Ab Testing Experimentation · AI Development · Monitoring

11,708

TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.

View details
53
Repo Health
87
Technical
68
Dependency
Built with
Rust 79%
TypeScript 15%
Updated 4 months ago
TypeScript
68%
AGPL 3.0

Tolaria

Note Taking

20,161

A free, open-source, local-first desktop app for managing markdown knowledge bases on macOS, Windows, and Linux — for second brains, company docs, or AI assistant memory and procedures.

View details
84
Repo Health
71
Technical
68
Dependency
Built with
TypeScript 68%
HTML 15%
Updated 6 days ago
Rust
71%
MIT

Trieve

AI Development · Developer Tools · Search

2,721

All-in-one self-hostable platform for hybrid search, RAG, recommendations, and analytics built on Rust and Qdrant.

View details
42
Repo Health
74
Technical
65
Dependency
Built with
Rust 71%
Updated 9 months ago
Rust
83%
AGPL 3.0

Vaultwarden

Password Manager · Security

69,556

Unofficial Bitwarden-compatible server in Rust — run the full Bitwarden ecosystem on a Raspberry Pi using every official client you already have, without the multi-container overhead.

View details
89
Repo Health
69
Technical
69
Dependency
Built with
Rust 83%
Updated 1 weeks ago
Rust
50%
Apache 2.0

Vibe Kanban

AI Agents · AI Code Assistants · Project Management

28,441

A kanban board for planning work and dispatching Claude Code, Codex, Gemini CLI, and eight other coding agents into isolated git worktrees, then reviewing and merging their diffs from one UI.

View details
72
Repo Health
75
Technical
63
Dependency
Built with
Rust 50%
TypeScript 46%
Updated 1 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers