Top 16 C++ WASM Projects
-
filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
I found this issue on github https://github.com/google/filament/pull/3190/files
-
SSVM
WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.
Project mention: Fermyon wants to reinvent the way programmers develop microservices | news.ycombinator.com | 2022-07-03 -
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
FWIW if you look around, C++ and Rust libraries for DOM manipulation exist (I haven't searched for other languages which compile to WASM):
https://github.com/mbasso/asm-dom
https://github.com/sycamore-rs/sycamore
I think solving the problem of DOM access on the library level is exactly the right way to tackle this problem. The library user don't need to care about specific WASM features, and the library implementation can be simplified when those WASM features become available (and also implement per-browser fallback paths)
-
I've checked your site's code, you are using pre-recorded mp3 files. I guess the latency comes from the browser itself. Mine is generating the sound on demand, a webassembly program runs constant in the background. I used a special language for digital signal processing called Faust to make it - https://faust.grame.fr/ It has an export function that renders a working page that I just styled and added the virtual and pc keyboard code to it.
-
And if not, it may be possible to use unaligned loads/stores to handle the fringe in a single (final) iteration: https://github.com/google/highway#strip-mining-loops
It is actually feasible to write vector-style code using SIMD instructions. Yes, the SIMD ISA is more complicated because of the various accumulated extensions, but this is what we currently have. And a bit larger code size (for one final loop iteration) doesn't seem to be a big deal.
-
Project mention: Show HN: How to compile C/C++ for WASM, pure Clang, no libs, no framework | news.ycombinator.com | 2022-04-11
These are also good resources on using wasm without dependencies:
https://depth-first.com/articles/2019/10/16/compiling-c-to-w...
-
Project mention: WaykiChain is one of the most innovative cryptocurrencies currently on the market | reddit.com/r/u_TuanKreb | 2022-01-05
-
SonarQube
Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
-
Project mention: Show HN: How to compile C/C++ for WASM, pure Clang, no libs, no framework | news.ycombinator.com | 2022-04-11
That is half of what I would need for a project, the other half being Clang itself running in the browser (to use for teaching), in theory there is [1] since many years, but in practice it never worked for me (even now I get "Runtime error: memory access out of bounds")
-
WebGui
An example demo of IMGUI (Immediate Mode GUI) on the web. Using only WebGL, GLFW and ImGui. Suitable for being compiled to web assembly (WASM).
My next app will be C++/Qt compiled to Javascript with Emscripten and then run inside Electron.
(Incidentally, someone made a Dear Imgui demo this way: https://jnmaloney.github.io/WebGui/imgui.html, minus involving Electron, of course.)
-
bergamot-translator
Cross platform C++ library focusing on optimized machine translation on the consumer-grade device. Bindings to Python, JavaScript through WebAssembly.
Project mention: Arm cores 2022: Cortex-X3, A715 and A510 are faster and more economical | reddit.com/r/hardware | 2022-06-28developed by https://browser.mt/
-
-
-
-
AECforWebAssembly
A port of ArithmeticExpressionCompiler from x86 to WebAssembly, so that the programs written in the language can run in a browser. The compiler has been rewritten from JavaScript into C++.
In my AEC-to-WebAssembly compiler, I am using custom exception types for internal compiler errors: CorruptCompilationContext, InvalidTypenameException and NotImplementedException. I am handling them in main.
-
-
Hi everyone!
Some friends and I were unhappy with how much work it was to use C++ from other languages. We were working in the optimizations industry and often had to prototype with python. Eventually, we created a tool to make it easier for C++ to talk to python (by generating pybind11). Later, javascript via WebAssembly was added as well. It's now at a point where it's very easy to just create a C++ library and use it from any of those languages without change. We're planning on slowly adding more languages as needed/requested. The next on the list are Swift and Kotlin.
It does not require any change to your existing public interface, but simply reads it and creates the bindings off of that. It should also work on Linux (Debian), MacOS, and Windows (Visual Studio). Here's a small demo if you'd like to test:
https://github.com/Tolc-Software/tolc-demo
And here are the repositories with the source code:
https://github.com/Tolc-Software/tolc - The executable
https://github.com/Tolc-Software/frontend.py - The python bindings generator
https://github.com/Tolc-Software/frontend.wasm - The WebAssembly bindings generator
https://github.com/Tolc-Software/Parser - The C++ parser
It is dual licensed with AGPL and, if someone wants, a commercial license as well.
Would be cool if someone finds it useful!
C++ WASM related posts
- Fermyon wants to reinvent the way programmers develop microservices
- Arm cores 2022: Cortex-X3, A715 and A510 are faster and more economical
- WasmEdge, a lightweight, high-performance, and extensible WebAssembly runtime
- The Bergamot project will add and improve client-side machine translation in a web browser.
- Why doesn't Firefox add a feature to translate web pages?
- Improving the foundation of our falling sand simulator
- What are the advantages or disadvantages of compiling to VM Bytecode vs native machine code?
Index
What are some of the best open-source WASM projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | filament | 14,259 |
2 | SSVM | 3,386 |
3 | asm-dom | 2,639 |
4 | faust | 1,872 |
5 | highway | 1,659 |
6 | wasm-fizzbuzz | 1,389 |
7 | WaykiChain | 1,049 |
8 | cib | 758 |
9 | WebGui | 337 |
10 | bergamot-translator | 105 |
11 | wasp | 93 |
12 | RoguelikeTutorial2020 | 26 |
13 | EmGlue | 18 |
14 | AECforWebAssembly | 15 |
15 | chip8 | 4 |
16 | frontend.wasm | 1 |
Are you hiring? Post a new remote job listing for free.