intermodal-rs 0.0.4

Container handling in Rust.
Documentation
# Intermodal

Container handling in Rust.

# Introduction

The goal is to implement functionality that can be used to handle Containers in Rust. More concretely -

1. Functionality to handle Container Images (Docker and OCI)
2. OCI Compliant Container Runtime
3. CRI Server, so this can run on a kubelet.
4. Tools/Utils that can be used directly.

The Goal is to make something that tools like  [skopeo](https://github.com/containers/skopeo), [podman](https://github.com/containers/podman) and [runc](https://github.com/opencontainers/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.

1. Inspect an Image
```rust

$ cargo build

# Run `image inspect` command
# Add -d for debug -dd for trace log levels
$ ./target/debug/intmod image inspect docker://fedora --config
```

2. Pull an Image
```rust

$ 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 -

1. Image Inspect and Image Pull (So that a `rootfs` can be created.)
2. Basic Runtime support that will utilize above `rootfs` to bring up a container.
3. Add features like `cgroup`, `seccomp` etc.
4. Runtime with support for VMs (Using [rust-vmm]https://github.com/rust-vmm/).
5. Front-end CRI server and other machinery needed (like `CNI` support etc.) to make it run with `crictl`.