#date-time #timestamp #date #time #format-time #stoicdreams

stoicdreams_timestamp

Lightweight Rust library for storing and managing timestamps, dates, and times

3 releases

0.1.2 May 27, 2024
0.1.1 May 29, 2023
0.1.0 May 29, 2023

#105 in Date and time

Download history 7/week @ 2024-02-20 11/week @ 2024-02-27 7/week @ 2024-03-12 2/week @ 2024-03-19 38/week @ 2024-03-26 15/week @ 2024-04-02 1/week @ 2024-04-30 151/week @ 2024-05-21 50/week @ 2024-05-28 5/week @ 2024-06-04

206 downloads per month

MIT license

43KB
701 lines

stoicdreams_timestamp: TimeStamp, StopWatch, DateTime, and Time

Timestamp GitHub Actions Timestamp on crates.io Timestamp on docs.rs

About

This project was created after discovering a security vulnerability exists (found using cargo audit) in the commonly used chrono cargo crate as of the then current version 0.4.24. The only actual functionality we wanted at the time was to be able to get a time stamp of the current date and time in UTC for the purposes of saving to a SurrealDB database, and the ability to format our time stamps when displaying in various UI applications.

Goals / Features

  • Store times down to the millisecond.
  • Store data as 64 bit integer to ensure date storage within the range of humanities lifetime.
  • Store data as signed integer to allow potential for supporting BC dates and times.
  • Store DateTime values with 0 representing midnight 0 AD instead of the more commonly used Unix Epoch at midnight 1970 AD.
  • Default string rendering for date and time is in UTC and follows the ISO 8601 standard.
  • Added StopWatch and PreciseTime for tracking precise timings - typically for measuring and tracking performance.

Future Goals / Features

  • Implement support for BC dates and times.
  • Implement support for 128bit storage - using feature flag to enable.

Getting Started

Update your Cargo.toml file to add the stoicdreams_timestamp crate as a dependency.

[package]
name = "name_of_your_app"
version = "0.1.0"
edition = "2021"

[dependencies]
stoicdreams_timestamp = "0.1.2"

Use prelude for simple access to all structs and methods.

use stoicdreams_timestamp::prelude::*;
Crate Install Command Example Run Command
rustfmt rustup component add rustfmt cargo fmt
clippy rustup component add clippy cargo clippy
cargo-audit cargo install cargo-audit cargo audit

Other Resources

Rust Docs Yew Docs

Author

Erik Gassler - Stoic Dreams - Forging solutions for tomorrow's software development.

Support - Visit Stoic Dreams' GitHub Sponsor page if you would like to provide support to Stoic Dreams.

License

MIT

Dependencies

~0.4–1MB
~23K SLoC