Containerization is a Swift package for running Linux containers on macOS

https://news.ycombinator.com/rss Hits: 26
Summary

Containerization The Containerization package allows applications to use Linux containers. Containerization is written in Swift and uses Virtualization.framework on Apple silicon. Containerization provides APIs to: Manage OCI images. Interact with remote registries. Create and populate ext4 file systems. Interact with the Netlink socket family. Create an optimized Linux kernel for fast boot times. Spawn lightweight virtual machines. Manage the runtime environment of virtual machines. Spawn and interact with containerized processes. Use Rosetta 2 for executing x86_64 processes on Apple silicon. Please view the API documentation for information on the Swift packages that Containerization provides. Design Containerization executes each Linux container inside of its own lightweight virtual machine. Clients can create dedicated IP addresses for every container to remove the need for individual port forwarding. Containers achieve sub-second start times using an optimized Linux kernel configuration and a minimal root filesystem with a lightweight init system. vminitd is a small init system, which is a subproject within Containerization. vminitd is spawned as the initial process inside of the virtual machine and provides a GRPC API over vsock. The API allows the runtime environment to be configured and containerized processes to be launched. vminitd provides I/O, signals, and events to the calling process when a process is ran. Requirements You need an Apple silicon Mac to build and run Containerization. To build the Containerization package, your system needs either: macOS 15 or newer and Xcode 26 Beta macOS 26 Beta 1 or newer Applications built using the package will run on macOS 15 or later, but the following features are not available on macOS 15: Non-isolated container networking - with macOS 15, containers on the same vmnet network cannot communicate with each other Example Usage For examples of how to use some of the libraries surface, the cctl executable is a good s...

First seen: 2025-06-09 21:20

Last seen: 2025-06-10 22:25