{"id":28403325,"url":"https://github.com/pendulum-project/statime","last_synced_at":"2025-06-26T22:30:44.242Z","repository":{"id":39861253,"uuid":"444359788","full_name":"pendulum-project/statime","owner":"pendulum-project","description":"Implementation of the Precision Time Protocol (PTP) in Rust","archived":false,"fork":false,"pushed_at":"2025-06-18T09:36:45.000Z","size":3787,"stargazers_count":236,"open_issues_count":30,"forks_count":25,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-06-18T10:32:57.776Z","etag":null,"topics":["clock","ieee1588","ptp","time","time-synchronization"],"latest_commit_sha":null,"homepage":"https://trifectatech.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pendulum-project.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-01-04T09:29:54.000Z","updated_at":"2025-06-18T09:36:48.000Z","dependencies_parsed_at":"2024-05-29T13:53:20.152Z","dependency_job_id":"96d3399d-546d-44e5-b9aa-ff76260a3e17","html_url":"https://github.com/pendulum-project/statime","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/pendulum-project/statime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pendulum-project%2Fstatime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pendulum-project%2Fstatime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pendulum-project%2Fstatime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pendulum-project%2Fstatime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pendulum-project","download_url":"https://codeload.github.com/pendulum-project/statime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pendulum-project%2Fstatime/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260539643,"owners_count":23024863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clock","ieee1588","ptp","time","time-synchronization"],"created_at":"2025-06-01T17:36:22.645Z","updated_at":"2025-06-26T22:30:44.232Z","avatar_url":"https://github.com/pendulum-project.png","language":"Rust","readme":"# Statime\n\n[![codecov](https://codecov.io/gh/pendulum-project/statime/branch/main/graph/badge.svg?token=QCO6NKS64J)](https://codecov.io/gh/pendulum-project/statime)\n[![book](https://shields.io/badge/manual-main-blue)](https://docs.statime.pendulum-project.org/)\n[![book](https://shields.io/badge/docs.rs-statime-green)](https://docs.statime.pendulum-project.org/api/statime/)\n\nStatime 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.\n\nIt 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.\n\nOn modern Linux kernels, the `statime-linux` crate provides a ready to use PTP daemon. See our [getting started guide](https://docs.statime.pendulum-project.org/guide/getting-started/).\n\nIf 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.\n\n\u003cp align=\"center\"\u003e\n\u003cimg width=\"216px\" alt=\"Statime - PTP in Rust\" src=\"https://tweedegolf.nl/images/statime.jpg\" /\u003e\n\u003c/p\u003e\n\n## Structure\n\nThe `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](https://docs.statime.pendulum-project.org/api/statime/)\n\n## Rust version\n\nStatime requires Rust version 1.67 at minimum. The easiest way to install Rust is through [rustup](https://rustup.rs)\n\n## Running from source\n\nBecause 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\n```\ncargo build\n```\nand then run it as root with\n```\nsudo ./target/debug/statime -i \u003cETHERNET INTERFACE NAME\u003e\n```\n\n# Roadmap\n\n- Stable release Statime (pending funding)\n- Adoption work \u0026 maintenance work\n\n# Support our work\n\nThe development of Statime is kindly supported by the NGI Assure Fund of the [NLnet Foundation](https://nlnet.nl).\n\n\u003cimg style=\"margin: 1rem 5% 1rem 5%;\" src=\"https://nlnet.nl/logo/banner.svg\" alt=\"Logo NLnet\"  width=\"150px\" /\u003e\n\u003cimg style=\"margin: 1rem 5% 1rem 5%;\" src=\"https://nlnet.nl/image/logos/NGIAssure_tag.svg\" alt=\"Logo NGI Assure\" width=\"150px\" /\u003e\n\n[SIDN Fonds](https://www.sidnfonds.nl/excerpt) is supporting us with a grant to develop clock devices running Statime and ntpd-rs, in collaboration with SIDN Labs' [TimeNL](https://www.sidnlabs.nl/en/news-and-blogs/an-open-infrastructure-for-sub-millisecond-internet-time).\n\nIn August of 2023, Sovereign Tech Fund invested in Pendulum (Statime and ntpd-rs). Read more on [their website](https://sovereigntechfund.de/en/projects/pendulum/).\n\n\u003cimg style=\"margin: 1rem 5% 1rem 5%;\" src=\"https://tweedegolf.nl/images/logo-stf-blank.png\" alt=\"Logo STF\" width=\"250px\" /\u003e\n\nWe continuously seek the involvement of interested parties and funding for future work. See [Project Pendulum](https://github.com/pendulum-project) or reach out to pendulum@tweedegolf.com.\n","funding_links":[],"categories":["Software"],"sub_categories":["Time Servers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpendulum-project%2Fstatime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpendulum-project%2Fstatime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpendulum-project%2Fstatime/lists"}