Darling is a runtime environment that allows running macOS applications on Linux without a virtual machine.
Darling solves the problem of macOS application portability to Linux by implementing a complete Darwin/macOS emulation layer. It works through a Mach-O binary loader paired with a userspace kernel server called darlingserver that translates macOS's Mach IPC, POSIX, and Darwin syscall interfaces to Linux equivalents. The project reimplements Apple's frameworks including Foundation, AppKit, CoreAudio, and CoreFoundation. Low-level components like XNU and libSystem are based on Apple's open-source releases, while higher-level frameworks are actively reimplemented. Many command-line tools are already functional, and GUI application support is under active development with an AppKit implementation and an initial Metal backend powered by Vulkan translation.
Darling suits developers who need to run macOS applications on Linux infrastructure without virtualization overhead. It is particularly useful for those working with CLI tools and increasingly viable for GUI applications as the framework implementations mature. The project uses a prefix system similar to WINE's approach, creating isolated virtual environments with macOS-like filesystem structures where software can be installed safely. Users should be aware that prefixes rely on overlayfs and cannot be placed on certain filesystems like NFS or eCryptfs, which affects default prefix locations on encrypted home directories.
The project maintains active development across its core components, with ongoing work on framework reimplementations and GUI support. The team actively tracks and responds to bug reports through its issue tracker. Community engagement is supported through a dedicated Discord server, and the project accepts donations to support continued development.