#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

#384 in Date and time

Download history 266/week @ 2024-01-09 255/week @ 2024-01-16 239/week @ 2024-01-23 225/week @ 2024-01-30 199/week @ 2024-02-06 176/week @ 2024-02-13 275/week @ 2024-02-20 391/week @ 2024-02-27 327/week @ 2024-03-05 441/week @ 2024-03-12 228/week @ 2024-03-19 243/week @ 2024-03-26 277/week @ 2024-04-02 177/week @ 2024-04-09 191/week @ 2024-04-16 131/week @ 2024-04-23

836 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