kflansburg.com
Discussions on Rust, Kubernetes, architecture, and more.

Detecting Undefined Behavior in Rust with Miri in GitHub Actions

-- 720 Words
Rust, CI/CD, Miri, GitHub Actions,

Miri is an interpreter for Rust’s mid-level intermediate representation (MIR), which allows for the detection of undefined behavior and other errors at compile time. Integrating Miri into Continuous Integration (CI) workflows can significantly improve the quality of a Rust codebase by catching errors early in the development process. This can be especially important if your codebase requires the use of unsafe blocks of Rust code which may prevent the Rust compiler from catching bugs that you would normally expect it to.

Read more...

Merge Queues with Bors

-- 1777 Words
Rust, Developer Productivity, GitHub,

Many engineering teams and open source projects are introducing merge queues as part of their workflows. This post explores several reasons for using a merge queue and describes how to set up Bors, the merge queue implementation used by the Rust language project.

Read more...

Speed up Rust Builds with Cachepot

-- 1195 Words
Rust, CICD,

One of the most effective ways for speeding up Rust builds is to cache the compiled artifacts of crate dependencies. Cargo does this automatically for local builds, but this quickly breaks down for distributed scenarios.

In this post, I will share my experiences with configuring and using Cachepot, a tool which wraps the Rust compiler and automatically caches build artifacts using a variety of cloud storage options. This creates a cache which can be shared amongst teams, used in ephemeral CI/CD environments, and even used for distributed builds.

Read more...

Krator: My God, it's Full of States!

-- 56 Words
Rust, Kubernetes, Krustlet,
At the beginning of February, I published my second guest post on Deis Labs’ blog, which introduced Krator. Pronounced “crater”, this crate allows you to build Kubernetes Operators in Rust, using the state machine API that we designed for Krustlet last year. Check out the post for an example of writing an Operator with this crate!

Rust Continuous Delivery

-- 2297 Words
AWS, Terraform, Rust, CICD, Kubernetes,

Over the last few years I have iterated several times on continuous delivery pipelines for Rust applications. Designing these pipelines involves balancing a number of factors including cost, complexity, ergonomics, and rigor. In this post I will describe several of these iterations, lessons learned, and share my most recent solution in detail.

Read more...

A Fistful of States: More State Machine Patterns in Rust

-- 37 Words
Rust, Kubernetes, Krustlet,
My recent guest post on Deis Labs’ blog offers a deep dive into my work on Krustlet, including the design and implementation of a flexible state machine API for specifying custom Kubelet behavior in a type-safe framework.
1 of 1