A container runtime written in Rust
youki is an implementation of the OCI runtime-spec in Rust, similar to runc.
Here is why we are writing a new container runtime in Rust.
* Rust is one of the best languages to implement the oci-runtime spec. Many very nice container tools are currently written in Go. However, the container runtime requires the use of system calls, which requires a bit of special handling when implemented in Go. This is too tricky (e.g. namespaces(7), fork(2)); with Rust, it's not that tricky. And, unlike in C, Rust provides the benefit of memory safety. While Rust is not yet a major player in the container field, it has the potential to contribute a lot: something this project attempts to exemplify.
* youki has the potential to be faster and use less memory than runc, and therefore work in environments with tight memory usage requirements. Here is a simple benchmark of a container from creation to deletion.
Runtime Time (mean ± σ) Range (min … max)
youki 198.4 ms ± 52.1 ms 97.2 ms … 296.1 ms
runc 352.3 ms ± 53.3 ms 248.3 ms … 772.2 ms
crun 153.5 ms ± 21.6 ms 80.9 ms … 196.6 ms
* I have fun implementing this. In fact, this may be the most important.
-
1
derived packages
- Download package
-
Checkout Package
osc -A https://api.opensuse.org checkout Virtualization:containers/youki && cd $_
- Create Badge
Source Files
Filename | Size | Changed |
---|---|---|
_service | 0000000789 789 Bytes | |
vendor.tar.zst | 0046073061 43.9 MB | |
youki-0.3.2.obscpio | 0025308685 24.1 MB | |
youki.changes | 0000000207 207 Bytes | |
youki.obsinfo | 0000000094 94 Bytes | |
youki.spec | 0000002997 2.93 KB |
Latest Revision
new package youki: A container runtime written in Rust
Comments 0