Skip to content

Commit c33ea73

Browse files
committed
Update WASI Libc's README.md.
Update the description, point users to wasi-sdk as a simpler place to get started using this library, and remove old text about being a "reference" implementation.
1 parent 0cc57ac commit c33ea73

1 file changed

Lines changed: 16 additions & 21 deletions

File tree

README.md

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,18 @@
11
# WASI Libc
22

3-
This is a work in progress. It's usable for many purposes, though the APIs
4-
aren't stable yet.
3+
WASI Libc is a libc for WebAssembly programs built on top of WASI system calls.
4+
It provides a wide array of POSIX-compatible C APIs, including support for
5+
standard I/O, file I/O, filesystem manipulation, memory management, time, string,
6+
environment variables, program startup, and many other APIs.
57

6-
## What is this?
7-
8-
It's several things.
9-
10-
First, it's a usable libc. It builds a "libc" which can be used by
11-
compilers, such as Clang 8.0, using the wasm32-wasi target. It's a work in
12-
progress, but it is already sufficient to run basic programs.
13-
14-
Second, it's a "reference" implementation, which means the interfaces defined
15-
here can be used by other tools and libraries, even if they don't use all the
16-
actual implementations here. For example, we don't expect everyone will want
17-
to use the exact `malloc` implementation provided here, but tools and
18-
libraries using an ABI-compatible `malloc` interface will be able to
19-
interoperate regardless of which actual implementation is used.
20-
21-
Third, it's an example showing the use of the WASI API. The libc functionality
22-
is implemented using calls to WASI functions.
8+
WASI Libc is sufficiently stable and usable for many purposes, as most of the
9+
POSIX-compatible APIs are stable, though it is continuing to evolve to better
10+
align with wasm and WASI.
2311

2412
## Usage
2513

26-
The easiest way to get started with this is to use one of the
27-
[prepackaged releases](https://github.com/CraneStation/wasmtime/blob/master/docs/WASI-intro.md#how-can-i-write-programs-that-use-wasi).
14+
The easiest way to get started with this is to use [wasi-sdk], which includes a
15+
build of WASI Libc in its sysroot.
2816

2917
## Building from source
3018

@@ -48,3 +36,10 @@ To use the sysroot, use the `--sysroot=` option:
4836
```
4937

5038
to run the compiler using the newly built sysroot.
39+
40+
Note that Clang packages typically don't include cross-compiled builds of
41+
compiler-rt, `libclang_rt.builtins-wasm32.a`, so they may not be usable without
42+
extra setup. This is one of the things [wasi-sdk] simplifies, as it includes
43+
a cross-compiled compiler-rt.
44+
45+
[wasi-sdk]: https://github.com/WebAssembly/wasi-sdk

0 commit comments

Comments
 (0)