rust-extensions is a collection of Rust crates that extend containerd with pluggable components for container runtime operations.
The project addresses the need for Rust-based extensions to containerd by providing a modular set of crates covering distinct concerns: protocol bindings for shim interfaces via TTRPC, logging plugins for container shims, a runtime v2 shim wrapper, gRPC client bindings to containerd APIs, remote snapshotter implementations, and a runc CLI wrapper. Developers can use individual crates as needed rather than building these integrations from scratch, reducing boilerplate and ensuring compatibility with containerd's extension interfaces.
The tool suits teams building custom container runtimes, snapshotters, or logging solutions in Rust who want to integrate with containerd. It is particularly valuable for those implementing runtime v2 shims or remote snapshotters, as the crates provide the protocol definitions and wrapper abstractions required by containerd's plugin model. Projects that need to interact with containerd via gRPC or implement container lifecycle hooks will find the client and shim crates most relevant. The modular design means you can adopt only the crates your project requires.
The project targets the latest stable Rust version and requires protoc to be available during builds, as several crates generate protocol bindings at build time. Development activity shows consistent maintenance of the crate ecosystem with updates to keep pace with Rust toolchain changes and containerd API evolution.