Blog
Translating bzip2 with c2rust
Over the past couple of months we've been hard at work on libbzip2-rs, a 100% Rust drop-in compatible implementation the bzip2 compression and decompression functionality.
For this project, we used c2rust
for the initial translation from the C code to a Rust implementation. The generated Rust code has now been cleaned up and made safe where possible. This post describes our experiences using c2rust for this project.
zlib-rs is faster than C
Mix in Rust with Java (or Kotlin!)
OpenLEADR 3.0: Initial Traction and Future Plans
The hunt for error -22
Power consumption of an experimental webserver
This article was authored by Jordy Aaldering and Folkert de Vries
Over the past couple of months, we teamed up with Bernard van Gastel and Jordy Aaldering at Radboud University's Software Energy Lab to measure nea's energy efficiency.
Travelling to the land of the rising sun with Statime
Manipulating time through (S)NTP
The NTP protocol is used by many devices to synchronize their system clocks. However, many devices use SNTP clients (Simple NTP) which are even more vulnerable to interference. As most (S)NTP packets are unauthenticated, they are vulnerable to spoofing, making it possible to change a device's time by manipulating (S)NTP packets.
In this blog, we discuss how (S)NTP packets can be forged to manipulate a device's system clock. Especially on the default SNTP client for many Linux systems, this turned out to be very easy. We will also dicuss the consequences of such attacks, as well as how these attacks can be prevented.
Rust implementation of OpenADR 3.0 becomes part of OpenLEADR
Rust needs an official specification
Enabling pools in NTS
Rust is rolling off the Volvo assembly line
Rust interop in practice: speaking Python and Javascript
Mix in Rust with C++
Mix in Rust with Python: PyO3
Current zlib-rs performance
zlib-rs
project implements a drop-in replacement for libz.so
, a dynamic library that is widely used to perform gzip (de)compression.Mix in C with Rust: A taste of C in your Rust
Statime vs Linux PTP: Comparison of precision
As part of the development of our Precision Time Protocol implementation, Statime, we want to know how it performs compared to other implementations of PTP.
To figure this out, last April we visited VSL, the Dutch National Metrology Institute. There, we performed comparitive precision tests between Statime and Linux PTP.
Will Rust be alive in 10 years?
Want more Rust? Break the cycle!
Tock binary size
Authentication for PTP
Mix in Rust with C
Mix in Rust
A safe Internet requires secure time
Hacking time: how you can control anyone's clock
Save the planet, code in Rust
Sudo-rs dependencies: when less is better
“Software must become safer”, but how?
Teach-rs: Rust 101 evolved
Rust in Production at Tweede golf (podcast)
Sequential-storage: efficiently store data in flash
While using a full-blown filesystem for storing your data in non-volatile memory is common practice, those filesystems are often too big, not to mention annoying to use, for the things I want to do. My solution?
I've been hard at work creating the sequential-storage crate. In this blog post I'd like to go over what it is, why I created it and what it does.
Building an Async Runtime with mio
Rust for hardware vendors
At Tweede golf we're big fans of creating applications on embedded devices with Rust and we've written a lot about it.
But if you're a hardware vendor (be it chips or full devices/systems), should you give your users Rust support in addition to your C support?
In this blog I argue that the answer to the question is yes.
Introducing ntpd-rs metrics
An unusual tool for unused code
Implementing NTPv5 in ntpd-rs
Pendulum long-term goals: usability and security (video)
ntpd-rs: Folkert explains the project (video)
Statime continues: Boundary Clocks and Master Ports
sudo-rs' first security audit
Why we sponsor memory safety event Tectonics
Dealing with Dependencies in Rust
At Tweede golf we are convinced that if software is written in Rust, it will be more robust (compared to legacy languages such as C, C++ or Java), and more efficient (compared to code written in PHP or Python and again, Java).
In order to get more robust software out there, we have to get Rust code running on computers of people who are not themselves Rust developers.
First stable release of ntpd-rs
Our pixel-rendered planner with a Rust backend
Are we embedded yet?
Rust 101's first run at STU Bratislava
Sovereign Tech Fund invests in Pendulum
Our talk at CYSAT 2023
Report: NTP security audit
Threat Modelling
ntpd-rs: NTP for the modern era (video)
This article is an adaptation of the original, published by Prossimo.
We're happy to announce that the Internet Security Research Group has officially made us the maintainers of the open-source memory-safe implementation of NTP, ntpd-rs
. As such, we are now also looking for early adopters.
The implementation includes a server and client, as well as full support for Network Time Security (NTS), which brings encryption and greater integrity to time synchronization. Timing is precise and stable, as reflected by excellent performance in the NTP pool.
Rust at Royal Netherlands Aerospace Centre
While working on the Roc compiler, we regularly dive deep on computer science topics. A recurring theme is speed, both the runtime performance of the code that we generate, as well as the performance of our compiler itself.
One extremely useful technique that we have been playing with is data-oriented design: the idea that the actual data you have should guide how code is structured.