Project Pendulum

The Pendulum project is building modern, open-source implementations of the Network Time Protocol and the Precision Time Protocol.

Pendulum focuses on security and robustness and provides memory safety through Rust. Statime (PTP) and ntpd-rs (NTP) are the two projects that constitute Pendulum.

Objectives

Our mission is to create memory-safe timing protocol implementations that 1) provide reliable time synchronization, and 2) are easily extensible to accommodate future timing standards improvements.

Working with the timing community and sharing our insights and knowledge is an integral part of that mission.

Roadmap

Q1 2023: NTS (Network Time Security) support + audit ntpd-rs

Q2 2023: PTP default profile + NTP/PTP clock device

Q3 2023: Adoption work (ntpd-rs) and new features

Why Pendulum?

Running on millions of devices and servers, NTP and PTP are vital building blocks of the Internet and other critical infrastructure: in finance and broadcasting, in our power grids and telecommunication, and in security protocols.
The most popular implementations today are large C projects. It is hard to validate that they are memory-safe, and there have been security issues in the past. Our implementations in Rust guarantee memory-safety, and we focus on exposing a minimal attack surface. We implement security improvements such as NTS, to help provide as-safe-as-possible infrastructure.

The projects

Tags

Languages

Contributors

ntpd-rs

ntpd-rs is an implementation of NTP completely written in Rust, with a focus on exposing a minimal attack surface. In this blog post the process of implementing a new open-source version of the Network Time Protocol is explained.

The project originates from ISRG's Prossimo, as part of their mission to achieve memory safety for the Internet's most critical infrastructure. Prossimo funded the initial development of the NTP client and server, and NTS support. The NTP initiative page on Prossimo's website tells the story.

ntpd-rs is part of Project Pendulum.

Statime

Statime is an initiative of Tweede golf, a work-in-progress implementation of the Precision Time Protocol (PTP) in Rust.

High-precision timing is part of crucial networking infrastructure. With Statime we aim to provide a memory-safe alternative for existing implementations.

The first milestones of the project were kindly co-funded by the NLnet Foundation.

Statime is part of Project Pendulum.

What ISRG has to say

Delivering solid results quickly, comes from a team that is focused on the task at hand. That definitely is an aspect of TG's work that we appreciate because it leads to impressive efficiency.

Josh Aas

Executive Director, Internet Security Research Group

Support us

Financial stability is key to maintaining and extending the projects and growing adoption. We offer GitHub sponsoring options and are happy to talk about custom sponsoring arrangements or funding for specific features.

Clients & partners

Internet Security Research GroupClient
NLnet FoundationSupporter
Rust FoundationSilver Member
SIDNInnovation partner

Support Pendulum?

Do you want to learn more about Pendulum, NTP or PTP, or support our project?