You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Statime is a library providing an implementation of PTP version 2.1 (IEEE1588-2019). It provides all the building blocks to setup PTP ordinary and boundary clocks.
It is designed to be able to work with many different underlying platforms, including embedded targets. This does mean that it cannot use the standard library and platform specific libraries to interact with the system clock and to access the network. That needs to be provided by the user of the library.
On modern Linux kernels, the statime-linux crate provides a ready to use PTP daemon. See our getting started guide.
If you want to use Statime on platforms other than Linux, you will need to implement a suitable binary yourself. The statime-stm32 crate gives an example of how to do this on an embedded target.
Structure
The statime library has been built in a way to try and be platform-agnostic. To do that, the network and clock have been abstracted. The statime-linux library provides implementations of these abstractions for linux-based platforms. For other platforms, this needs to be provided by the user. For more details, see the documentation
Rust version
Statime requires Rust version 1.67 at minimum. The easiest way to install Rust is through rustup
Running from source
Because of the use of ports 319 and 320 in the PTP protocol, statime-linux needs to be run as root. It is best to build it as a non-root user with