core:

The core libraries that form Mirage. These are primarily module type definitions for functionality such as networking and storage, as well as the frontend configuration and CLI tooling.

driver:

Library implementations for boot-related functionality not specific to a particular target.

driver/solo5:

Drivers for booting on the Solo5 target, which uses a slimmed down KVM hypervisor to run.

driver/xen:

Drivers for booting directly on the Xen hypervisor.

driver/unix:

Drivers for running as a normal Unix process on Linux, Free/Net/OpenBSD or macos.

driver/win:

Drivers for bindings to Windows-specific APIs and services.

driver/osx:

Drivers for bindings to macos specific APIs and services.

parsing:

Libraries to help parsing and pickling into various formats.

logging:

Logging and profiling libraries for recording and analysing unikernel activities.

storage:

Libraries to encode into persistent on-disk formats, often with interoperability with other systems.

network:

Libraries that implement remote network protocols, often specified in IETF RFCs.

web:

Libraries that implement web-related technologies, including the HTTP protocol.

vcs:

Version-controlled storage technologies, including the Irmin datastructure layer.

security:

Cryptography and encryption-related libraries.

testing:

Libraries to assist with building unit tests and coverage.