Header-only C++20 libraries for WebAssembly
Every library of webcpp, as Boost lists its own. Each name leads to the library's page: its guide, its guarantees, its API reference and how it is tested. A port names the original it follows, at the exact version it is proven against.
| Library | Description | Category | Targets | Original |
|---|---|---|---|---|
| asio | Boost.Asio for native, browser and WASIp2/P3 targets, with explicit platform capabilities and shipped Wasm implementations. | Concurrent, IO | emscripten, native, wasip2, wasip3 | webcpp's own |
| beast | Beast-compatible HTTP and WebSocket interfaces for WebAssembly and native applications. | Concurrent, IO | emscripten, native, wasip2, wasip3 | webcpp's own |
| cobalt | Boost.Cobalt coroutine applications on native, browser and WASI targets. | Concurrent, IO | emscripten, native, wasip2, wasip3 | webcpp's own |
| config | webcpp's configuration, which every webcpp library includes first: the target a program is built for, whether webcpp has exceptions, and webcpp's version. | Miscellaneous | emscripten, native, wasip2, wasip3 | webcpp's own |
| document | A JSON document for C++20 that behaves as JavaScript does, in one relocatable image. | Data structures, Parsing | emscripten, native, wasip2, wasip3 | webcpp's own |
| idna | IDNA2008 and UTS 46 for C++20: Punycode, ToASCII and ToUnicode, and label validity, over generated Unicode 17.0 tables. | String | emscripten, native, wasip2, wasip3 | webcpp's own |
| lexical | Validators and Boost.URL grammar rules for the string formats of JSON Schema, for C++20. | Parsing, String | emscripten, native, wasip2, wasip3 | webcpp's own |
| pratt | A generic Pratt parser engine for C++20, with a decimal calculator built on it. | Parsing | emscripten, native, wasip2, wasip3 | webcpp's own |
| trystero | Serverless WebRTC rooms for C++20, wire compatible with Trystero. | Concurrent, IO | emscripten, native | Trystero 0.26.0 (JavaScript) |
| wasi | Header-only helpers for C++ built as WebAssembly components: the HTTP handler a component exports on wasip2 and wasip3, and the macros a program writes its main between. | System | native, wasip2, wasip3 | webcpp's own |
| xactor | A header-only, deterministic actor system: actors that handle one message at a time, with fuel per execution, timers and a lifecycle. | Concurrent | native, wasip2, wasip3 | webcpp's own |
| xstate | A header-only port of XState's state machines and actors: machines read from XState's JSON config, stepped by XState's pure functions or run as actors on xactor. | State | native, wasip2, wasip3 | XState 5.33.2 (TypeScript) |
Bring a library
A port of a library web developers use, or a library of your own, joins webcpp through an issue that proposes it.
How to bring a library