|Developer(s)||Rich Felker (dalias) and others|
|Initial release||February 11, 2011|
1.2.1 / August 4, 2020
|Operating system||Linux 2.6 or later|
|Platform||x86, x86 64, ARM, MIPS, Microblaze, PowerPC, powerpc64, x32, OpenRISC, s390x, SuperH|
musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License. It was developed by Rich Felker with the goal to write a clean, efficient and standards-conformant libc implementation.
musl was designed from scratch to allow efficient static linking and to have realtime-quality robustness by avoiding race conditions, internal failures on resource exhaustion and various other bad worst-case behaviors present in existing implementations. The dynamic runtime is a single file with stable ABI allowing race-free updates and the static linking support allows an application to be deployed as a single portable binary without significant size overhead.
It claims compatibility with the POSIX 2008 specification and the C11 standard. It also implements most of the widely used non-standard Linux, BSD, and glibc functions. There is partial ABI compatibility with the part of glibc required by Linux Standard Base.
Version 1.2.0 has support for (no longer current) Unicode 12.1.0 (while still having full UTF-8 support, more conformant/strict than glibc), and version 1.2.1 "features the new "mallocng" malloc implementation, replacing musl's original dlmalloc-like allocator that suffered from fundamental design problems."
Some Linux distributions that can use musl as the standard C library include Alpine Linux, Dragora 3, Gentoo Linux, OpenWrt, Sabotage, Morpheus Linux and Void Linux. seL4 microkernel ships with musl. For binaries that have been linked against glibc, gcompat can be used to execute them on musl-based distros.
- "musl - obsolete versions". musl-libc.org. 2017-10-31. Retrieved 2018-01-14.>
- "musl libc Release History". musl.libc.org. Retrieved 2020-08-13.
- Rich Felker; et al. (2016-04-29). "COPYRIGHT". Retrieved 2016-09-26.
- "Introduction to musl". 2016-04-21. Retrieved 2016-09-26.
- "Compatibility". wiki.musl-libc.org. 2014-05-27. Retrieved 2016-09-26.
- "Comparison of C/POSIX standard library implementations for Linux". www.etalabs.net.
- "musl libc - Functional differences from glibc". wiki.musl-libc.org. Retrieved 2020-08-13.
- README.md on GitHub
- "morpheus:". Retrieved 2018-06-15.
- seL4/musllibc, seL4 microkernel and related repositories, 2020-08-30, retrieved 2020-09-05
- "Adélie Linux / gcompat". GitLab. Retrieved 2019-10-21.
- Official website
- Comparison of C/POSIX standard library implementations for Linux
- Matrix of C/POSIX standard libraries by architecture
- Project:Hardened musl on Gentoo wiki
- Rich Felker held a talk at the Embedded Linux Conference (ELC) 2015: ELC 2015 - Transitioning From uclibc to musl for Embedded Development - Rich Felker, Openwall