## Project description (what it does, why it is valuable, origin and history) `runV` is a hypervisor-based container runtime implementation for [OCI](https://github.com/opencontainers/runtime-spec). It uses hypervisors (KVM, Xen, etc.), instead of Cgroup/Namespace to spawn and run containers. runV is able to launch a container image (Docker, OCI, etc.) into a micro VM in 100ms, and still keeps the hardware-enforced isolation in virtualization. The combination allows container to replace traditional VM as the building block for future cloud, which is container-native and application-centric. `hyperstart` is a independent component for `runV` which is used as init service (PID=1) inside the VM sandbox to handle commands from outside world. This is the key to hypervisor based container to match the design and behavior of Linux container. 'runV` is integrated with [Kubernetes](https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#node-components-1 ) as an plug-able secure CRI runtime to launch micro VM as Pod. Also, `runV` can work with `containerd` to start secure container. Besides security and isolation, `runV` also brings greater workload compatibility (kernel module, kernel version, Bring-Your-Own-Kernel) to multi-tenant environment. * statement on alignment with CNCF charter mission `runV` tries to enable native hypervisor-based runtime in Kubernetes and CNCF community in cloud native way. This is a important supplement to current ecosystem especially considering the coming soon roadmaps including hard multi-tenancy, container security, and legacy application adoption. By closely working with CNI, CRI, containerd, Prometheus etc, `runV` is looking forward to fostering the growth of CNCF community to a wider area. * sponsor from TOC - Ken Owens * preferred maturity level - Incubator * license - Apache 2 * source control - GitHub https://github.com/hyperhq/runv https://github.com/hyperhq/hyperstart * external dependencies (including licenses) `runV` only has very limited external dependencies which are mostly used as utils: ``` github.com/RoaringBitmap/roaring Apache 2.0 github.com/Sirupsen/logrus MIT github.com/cloudfoundry/gosigar Apache 2.0 github.com/urfave/cli MIT github.com/docker/docker/integration-cli/checker Apache 2.0 github.com/docker/docker/pkg/longpath Apache 2.0 github.com/docker/docker/pkg/mount Apache 2.0 github.com/docker/docker/pkg/reexec Apache 2.0 github.com/docker/docker/pkg/symlink Apache 2.0 github.com/docker/docker/pkg/system Apache 2.0 github.com/docker/go-units Apache 2.0 github.com/go-check/check BSD github.com/golang/glog Apache 2.0 github.com/golang/protobuf BSD github.com/golang/snappy Apache 2.0 github.com/hyperhq/hypercontainer-utils/hlog Apache 2.0 github.com/kardianos/osext BSD github.com/kr/pty MIT github.com/mschoch/smat Apache 2.0 github.com/opencontainers/runc/libcontainer/utils Apache 2.0 github.com/opencontainers/runtime-spec/specs-go Apache 2.0 github.com/philhofer/fwd MIT github.com/rgbkrk/libvirt-go MIT github.com/tinylib/msgp/msgp MIT github.com/vdemeester/shakers Apache 2.0 github.com/vishvananda/netlink Apache 2.0 github.com/vishvananda/netns Apache 2.0 github.com/willf/bitset BSD 3 golang.org/x/net/ BSD 3 golang.org/x/sys/unix BSD 3 google.golang.org/grpc BSD 3 ``` `hyperstart` is a tiny C implemented program which have no external dependency except Linux kernel. * initial committers (how long working on project) Lai Jiangshan @laijs Gao Feng @gao-feng Wang Xu @gnawux All working on `runV` and `hyperstart` for 1.5+ years, with write permission. * infrastructure requests (CI / CNCF Cluster): None * communication channels (slack, irc, mailing lists) * Mailing list: [hyper-user](https://groups.google.com/forum/#!forum/hyper-user) * Slack: https://slack.hyper.sh * issue tracker - GitHub https://github.com/hyperhq/runv/issues https://github.com/hyperhq/hyperstart/issues * website - https://github.com/hyperhq/runv * release methodology and mechanics The latest stable release for runV is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 8 releases. We have a 2~3 months scheduled release period, which depends on the changes in 5 main aspects: 1. CRI spec 2. OCI runtime & image spec 3. Notable change in Kubernetes `Node` or `containerd` 4. Notable change in CNI spec 5. Notable change related to hypervisor related library The release tar file can be downloaded via: https://github.com/hyperhq/runv/releases The latest stable release for hyperstart is [0.8.1](https://github.com/hyperhq/runv/releases/tag/v0.8.1), and there have been 10 releases. We also have a 2~3 months scheduled release period, which depends on the changes in 3 main aspects: 1. CRI requirement 2. runV requirement 3. Notable change related to hypervisor related library * social media accounts @hyper_sh * community size and any existing sponsorship runV: * 1034 commits * 50 forks * 22 Contributors * 259 Stars * 8 releases * 300+ slack members hyperstart: * 694 commits * 44 forks * 23 Contributors * 81 Stars * 10 releases Huawei contributed engineer time to `runV` and `hyperstart` to integrate them with containerd and Docker. Kontron AG, a German embedded computer manufacture donated a cluster for `runV` maintainers to test `runV` + Kubernetes + OpenStack for NFV workloads. Intel OTC contributed engineer time to improve and use `hyperstart`