Toro is a unikernel for deploying applications as microVMs using virtio-fs and virtio-vsocket with a minimalistic architecture.
Toro is a unikernel designed to deploy applications as microVMs, eliminating the need for a traditional operating system. It provides a minimalistic architecture where applications run directly as virtual machines, leveraging virtio-fs and virtio-vsocket for efficient storage and communication. This approach speeds up execution by running the application and kernel at the same privilege level, using direct function calls instead of syscalls.
Developers and system architects building lightweight, high-performance microservices or applications that need to run in isolated microVM environments, such as with QEMU-KVM microvm or Firecracker. It's also suitable for those experimenting with unikernel technology for cloud deployments or embedded systems.
Developers choose Toro for its minimalistic design that removes the OS overhead, resulting in fast boot times and tiny image sizes. Its unique selling point is the cooperative scheduler and direct function call API, which maximizes performance in microVM settings compared to traditional OS-based virtualization.
This repository contains the source code of toro unikernel
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Toro offers rapid boot times and tiny image sizes, as demonstrated in the HelloWorld example, making it ideal for quick deployment in microVM environments.
Leverages virtio-fs for shared filesystem access and virtio-vsocket for networking, enabling high-performance communication and storage without OS overhead, as shown in the StaticWebServer example.
Eliminates syscall overhead by running applications at the same privilege level as the kernel, using direct function calls for maximum performance, as highlighted in the philosophy section.
Includes a gdbstub for debugging applications in microVM settings, simplifying development and troubleshooting for unikernel applications.
Getting started requires Docker, KVM, and manual installation of additional tools like virtiofsd and socat, as outlined in the build instructions, making onboarding cumbersome.
Toro does not adhere to POSIX standards, so applications must be specifically written or ported to use its custom API, limiting code portability and increasing development effort.
As a niche unikernel project, Toro has fewer libraries, tools, and community support compared to mainstream operating systems or container platforms, which can hinder adoption and troubleshooting.