3 releases

Uses old Rust 2015

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

#396 in Date and time

Download history 216/week @ 2023-11-19 214/week @ 2023-11-26 223/week @ 2023-12-03 206/week @ 2023-12-10 225/week @ 2023-12-17 107/week @ 2023-12-24 184/week @ 2023-12-31 283/week @ 2024-01-07 235/week @ 2024-01-14 226/week @ 2024-01-21 243/week @ 2024-01-28 214/week @ 2024-02-04 188/week @ 2024-02-11 236/week @ 2024-02-18 366/week @ 2024-02-25 368/week @ 2024-03-03

1,158 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