WASI libc implementation for WebAssembly
wasi-libc is a libc implementation for WebAssembly programs that provides POSIX-compatible C APIs built on top of WASI system calls. It supports standard I/O, file I/O, filesystem manipulation, memory management, time, string handling, and environment variables, among other functionality. The project is structured in two layers: the "bottom half" consisting of C interfaces to low-level WASI syscalls (derived from cloudlibc and inspired by libpreopen), and the "top half" based on musl libc providing higher-level standard library functionality. The implementation is built with CMake and requires a WebAssembly-supporting C compiler like Clang 10 or later, and it depends on dlmalloc for memory allocation, with experimental pthread support provided through the wasi-threads proposal.