classDiagram
miral --> mircore
mircommon --> mircore
mirwayland --> mircore
miral -->mircommon
mirwayland --> mircommon
Compositor --> miral
Compositor --> mirwayland
class miral["miral (main APIs)"]
class mirwayland["mirwayland (Extension APIs)"]
Mir provides compositor authors with a set of libraries that they can use to build Wayland based shells. These libraries are:
Library
Description
miral
The most commonly used library is miral (the “Mir Abstraction Layer”). This provides an API that makes Mir easy for compositor authors to work with. It provides core window management concepts and an interface that is more ABI stable than Mir’s internal APIs.
mirwayland
Compositor authors may want to define their own wayland protocol extensions in addition to the ones that the core Mir implementation defines. The mirwayland library satisfies this requirement. This library may be used in conjunction with either miral or miroil.
These are supported by some low-level libraries (mircore and mircommon) that are also used by Mir’s internal libraries.
Library
Description
mircore
Fundamental data concepts, like file descriptors and rectangles. These data structures tend not to be Mir-specific.
mircommon
Mir-specific data concepts like Mir event building, logging, and timing utilities.