#date-time #time #date

temporenc

Library for the Temporenc time/date format

3 releases

Uses old Rust 2015

0.0.3 Feb 7, 2017
0.0.2 Feb 7, 2017
0.0.1 Jan 29, 2017

#411 in Date and time

Download history 303/week @ 2024-11-16 214/week @ 2024-11-23 274/week @ 2024-11-30 293/week @ 2024-12-07 440/week @ 2024-12-14 236/week @ 2024-12-21 197/week @ 2024-12-28 383/week @ 2025-01-04 354/week @ 2025-01-11 463/week @ 2025-01-18 308/week @ 2025-01-25 638/week @ 2025-02-01 421/week @ 2025-02-08 555/week @ 2025-02-15 726/week @ 2025-02-22 711/week @ 2025-03-01

2,512 downloads per month

Custom license

50KB
1K SLoC

Rust library for Temporenc, a binary date/time format.

Great performance is a high priority for this implementation. It uses a different struct for each of the temporal types (date, date and time, etc). This allows for hand-tuned serialization and deserialization logic for each type. There also is no heap allocation (aside from test code, of course).

See below for some sample performance numbers from an i7-6850K (a 3.6Ghz Broadwell-E chip). Batches of 100 are used because time measurement accuracy is poor when single operations only take a few nanoseconds.

Operation Quantity Type Time
Deserialize 100 random date 665ns
Deserialize 100 random date + time 985ns
Deserialize 100 random date + time + offset 974ns
Deserialize 100 random date + time + subsecond 1300ns
Deserialize 100 random date + time + subsecond + offset 1473ns
Deserialize 100 random time 801ns
Serialize 100 random date 288ns
Serialize 100 random date + time 435ns
Serialize 100 random date + time + offset 492ns
Serialize 100 random date + time + subsecond 897ns
Serialize 100 random date + time + subsecond + offset 982ns
Serialize 100 random time 277ns

No runtime deps