Preview of main at d0a501a, 2026-11-07

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.

LibraryDescriptionCategoryTargetsOriginal
asioBoost.Asio for native, browser and WASIp2/P3 targets, with explicit platform capabilities and shipped Wasm implementations.Concurrent, IOemscripten, native, wasip2, wasip3webcpp's own
beastBeast-compatible HTTP and WebSocket interfaces for WebAssembly and native applications.Concurrent, IOemscripten, native, wasip2, wasip3webcpp's own
cobaltBoost.Cobalt coroutine applications on native, browser and WASI targets.Concurrent, IOemscripten, native, wasip2, wasip3webcpp's own
configwebcpp's configuration, which every webcpp library includes first: the target a program is built for, whether webcpp has exceptions, and webcpp's version.Miscellaneousemscripten, native, wasip2, wasip3webcpp's own
documentA JSON document for C++20 that behaves as JavaScript does, in one relocatable image.Data structures, Parsingemscripten, native, wasip2, wasip3webcpp's own
idnaIDNA2008 and UTS 46 for C++20: Punycode, ToASCII and ToUnicode, and label validity, over generated Unicode 17.0 tables.Stringemscripten, native, wasip2, wasip3webcpp's own
lexicalValidators and Boost.URL grammar rules for the string formats of JSON Schema, for C++20.Parsing, Stringemscripten, native, wasip2, wasip3webcpp's own
prattA generic Pratt parser engine for C++20, with a decimal calculator built on it.Parsingemscripten, native, wasip2, wasip3webcpp's own
trysteroServerless WebRTC rooms for C++20, wire compatible with Trystero.Concurrent, IOemscripten, nativeTrystero 0.26.0 (JavaScript)
wasiHeader-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.Systemnative, wasip2, wasip3webcpp's own
xactorA header-only, deterministic actor system: actors that handle one message at a time, with fuel per execution, timers and a lifecycle.Concurrentnative, wasip2, wasip3webcpp's own
xstateA 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.Statenative, wasip2, wasip3XState 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