15 releases
new 0.2.7 | Dec 12, 2024 |
---|---|
0.2.6 | Aug 20, 2024 |
0.2.5 | Mar 18, 2024 |
0.2.4 | Sep 11, 2023 |
0.1.3 | Jul 25, 2022 |
#34 in Date and time
33,042 downloads per month
Used in 19 crates
(2 directly)
54KB
960 lines
utcnow — Get the current unixtime in a no-std context
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
- Haiku
- 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:
-
serde
, which implementsserde::Deserialize
andserde::Serialize
forUtcTime
. -
arbitrary
, which implements thearbitrary::Arbitrary
trait forUtcTime
. -
proptest
, which implements theproptest::arbitrary::Arbitrary
trait forUtcTime
. -
quickcheck
, which implements thequickcheck::Arbitrary
trait forUtcTime
. -
rkyv
, which implements therkyv::Archive
,rkyv::Serialize
, andrkyv::Deserialize
forUtcTime
. -
castaway
, which implements thecastaway::LifetimeFree
trait forUtcTime
.
Dependencies
~0–10MB
~108K SLoC