An RFC 4330 compliant Simple Network Time Protocol (SNTP) client library for Rust.
rsntp
provides both a synchronous (blocking) and an (optional) asynchronous API which allows
synchronization with SNTPv4 servers. Time and date handling is based on the chrono
crate.
Add this to your Cargo.toml
:
toml
[dependencies]
rsntp = "0.3.1"
Obtain the current local time with the blocking API:
```rust use rsntp::SntpClient; use chrono::{DateTime, Local};
let client = SntpClient::new("pool.ntp.org").unwrap(); let result = client.synchronize().unwrap();
let localtime: DateTime
And a function which uses the asynchronous API to obtain local time:
```rust use rsntp::AsyncSntpClient; use chrono::{DateTime, Local};
async fn local_time() -> DateTime
DateTime::from(result.datetime()) } ```
The asynchronous API is compiled in by default but you can optionally disable it. This removes
dependency to tokio
which reduces crate dependencies significantly.
toml
[dependencies]
rsntp = { version = "0.3.1", default-features = false }