2 releases
0.0.4 | Oct 27, 2022 |
---|---|
0.0.3 | Jun 22, 2021 |
#23 in #oci
175KB
4K
SLoC
Intermodal
Container handling in Rust.
Introduction
The goal is to implement functionality that can be used to handle Containers in Rust. More concretely -
- Functionality to handle Container Images (Docker and OCI)
- OCI Compliant Container Runtime
- CRI Server, so this can run on a kubelet.
- Tools/Utils that can be used directly.
The Goal is to make something that tools like skopeo, podman and runc achieve but implemented in Rust.
Status
This is not even a v0.1.0
yet, some functionality to 'inspect' docker images along the lines of skopeo inspect
is present so far and a few test cases.
Getting Started
Right now, one can inspect
and pull
an Image.
To get started, one can try to run the following commands and check their output.
- Inspect an Image
$ cargo build
# Run `image inspect` command
# Add -d for debug -dd for trace log levels
$ ./target/debug/intmod image inspect docker://fedora --config
- Pull an Image
$ cargo build
# Run `image pull` command
# Add -d for debug -dd for trace log levels
$ ./target/debug/intmod image pull docker://fedora
To run the unit tests, run cargo test
.
Roadmap
The broad plan to implement the following -
- Image Inspect and Image Pull (So that a
rootfs
can be created.) - Basic Runtime support that will utilize above
rootfs
to bring up a container. - Add features like
cgroup
,seccomp
etc. - Runtime with support for VMs (Using rust-vmm).
- Front-end CRI server and other machinery needed (like
CNI
support etc.) to make it run withcrictl
.
Dependencies
~13–26MB
~392K SLoC