The WASI Libc that comes with the WASI SDK is fairly complete for our needs, as is the WASI Core API (syscall layer). But we have some additional needs, both at the C library & syscall layers, hence this mini project: it implements those extra pieces.
This project exists only to serve the needs of WASSH (and related). It is not meant to be integrated into other WASM projects, so please don't ask.
Everything is written in C. We avoid C++ only because we have no code in the WASM world that uses it. If that ever changes, we can reconsider.
We generally follow the Chromium C++ style guide for the code.
Files in include/ use multiple inclusion defines like WASSH_<FILENAME>_H
. Header files in src/ use defines like _WASSH_<FILENAME>_H
.
Extended headers under include/ should first include the existing C library header if it exists, and then our additional features come after.