#time #unixtime #utc #no-std #cross-platform

no-std utcnow

Get the current unixtime in a no-std context

8 releases

0.2.0 Aug 3, 2022
0.1.4 Aug 3, 2022
0.1.3 Jul 25, 2022
0.0.0-pre5 Jul 24, 2022

#73 in Date and time

Download history 81/week @ 2022-07-18 200/week @ 2022-07-25 497/week @ 2022-08-01 782/week @ 2022-08-08

1,560 downloads per month
Used in tzdb

Apache-2.0

39KB
694 lines

utcnow — Get the current unixtime in a no-std context

GitHub Workflow Status Crates.io Minimum supported Rust version License

This library solves one question, and one question only: What's the time?

In UTC, and according to the clock of the PC, tablet, toaster … the library runs on, expressed as seconds + nanoseconds since 1970-01-01.

let now = utcnow().unwrap();
let seconds = now.as_secs();
let nanos = now.subsec_nanos();

For many target platforms this call cannot fail. If this is true for the current target, then the constant INFALLIBLE will be true.

If the target platform is not supported, then utcnow() will always return an error instead of failing to compile. Use the library with default-features = false and without the feature fallback to get a compile-time error instead.

The feature std (enabled by default) is only needed if you need the Error type to implement std::error::Error.

Supported platforms

If you have successfully tested one of the untested targets, then please tell me. And if not, then even more so!

If you know how to implement another target, then please open a pull request.

Supported and tested:

  • Android
  • Emscripten
  • FreeBSD
  • Illumos
  • Linux
  • Linux with Musl
  • MacOS
  • NetBSD
  • WASI
  • wasm32
  • Windows

(Probably) supported, but not actually tested:

  • Darwin
  • Dragonfly
  • Fuchsia
  • iOS
  • OpenBSD
  • Redox
  • Solaris

Increasing the msrv for tier-2 or lower platforms will not be indicated as a breaking change to the semver version.

Feature flags

utcnow has the following optional features:

Dependencies

~0–6.5MB
~120K SLoC