2 releases
0.0.4 | Oct 27, 2022 |
---|---|
0.0.3 | Jun 22, 2021 |
#27 in #oci
21 downloads per month
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–27MB
~399K SLoC