C++ WASM

Open-source C++ projects categorized as WASM

WebAssembly (abbreviated WASM) is a binary instruction format for a stack-​based virtual machine. WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment.

Top 23 C++ WASM Projects

  • emscripten

    Emscripten: An LLVM-to-WebAssembly Compiler

    Project mention: Python HTTP library 'urllib3' now works in the browser | news.ycombinator.com | 2024-01-30

    Browsers limit the ability for these platforms to use raw sockets, there simply is no API for it. The best that can be done /today/ is to use WebSockets, which are not the same thing any can't be used for HTTP requests without the server expecting a WebSocket connection:

    https://github.com/emscripten-core/emscripten/issues/5196#is...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • filament

    Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2

    Project mention: Show HN: 3D rendering toolkit for Flutter and/or Dart | news.ycombinator.com | 2024-06-28

    I'd like to share Thermion, an open source 3D rendering toolkit I made for Flutter and/or Dart.

    This came about when I needed a 3D renderer for a Flutter app I was building (https://polyvox.app). At the time, the only off-the-shelf option was to embed Unity, which wasn't ideal for a few reasons - unstable build process, compositing and transparency issues, and licensing uncertainty, just to name a few. In any event, frankensteining Unity (C#) together with Flutter (Dart) didn't seem like a great solution.

    After browsing for alternative renderers, I discovered Filament (https://github.com/google/filament), an open-source, cross-platform Physically Based Rendering engine from Google. I initially only wrote some simple bindings to embed Filament inside a Flutter Android/iOS app, but have since added more functionality, and have expanded this to cover Windows, MacOS and Web (there was Linux support at one point, too, but I haven't been keeping up with it I'm afraid).

    Last week I published the first Thermion release to pub.dev (https://pub.dev/packages/thermion_dart), and with that milestone it seemed a good time to share with HN. This is also a call for contributors to anyone who is interested in helping! The repository is hosted at https://github.com/nmfisher/thermion).

    Some examples:

    - A live DartPad playground so you can try the Dart-only (i.e. non-Flutter version) of Thermion in browser (Chrome only for now).

  • 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: A WASM runtime for running LLMs locally | news.ycombinator.com | 2023-12-29
  • highway

    Performance-portable, length-agnostic SIMD with runtime dispatch

    Project mention: Open Source C++ Stack | dev.to | 2024-07-16

    GitHub

  • NectarJS

    🔱 Javascript's God Mode. No VM. No Bytecode. No GC. Just native binaries.

  • asm-dom

    A minimal WebAssembly virtual DOM to build C++ SPA (Single page applications)

  • faust

    Functional programming language for signal processing and sound synthesis (by grame-cncm)

    Project mention: Debian KDE: Right Linux distribution for professional digital painting in 2024 | news.ycombinator.com | 2024-05-31

    That's also a big reason why I prefer appimages.

    ossia score's AppImage is 100 megabytes: https://github.com/ossia/score/releases/tag/v3.2.0

    Inside, there's:

    - Qt 6 (core, widgets, gui, network, qml, qtquick, serial port, websockets and a few others) and all its dependencies excluding xcb (so freetype, harfbuzz, etc. which I build with fairly more recent versions than many distros provide)

    - ffmpeg 6

    - libllvm & libclang

    - the faust compiler (https://faust.grame.fr)

    - many random protocol & hardware bindings / implementations and their dependencies (sdl)

    - portaudio

    - ysfx

    with Flatpak I'd be looking at telling my users to install a couple GB (which is not acceptable, I was already getting comments that "60 MB are too much" when it was 60 MB a few years ago).

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • container2wasm

    Container to WASM converter

    Project mention: Ask HN: WASM Terminal Emulator Status? | news.ycombinator.com | 2024-05-26

    Maybe have a look at https://github.com/ktock/container2wasm, it most likely could boot into a customized container with all golang tools installed.

  • wasm-fizzbuzz

    WebAssembly from Scratch: From FizzBuzz to DooM.

  • WaykiChain

    Public Blockchain as a Decentralized Finance Infrastructure Service Platform

  • faasm

    High-performance stateful serverless runtime based on WebAssembly

    Project mention: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta | news.ycombinator.com | 2024-01-31
  • cib

    clang running in browser (wasm)

    Project mention: Clang in Browser | news.ycombinator.com | 2024-07-14
  • 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).

    Project mention: Visual Node Graph with ImGui | news.ycombinator.com | 2023-09-29

    you could compile this with imgui to the web: https://github.com/jnmaloney/WebGui

    but you'd have to write communication to your django app. I would do that in JS and then pass events to the WASM layer.

  • AlvaAR

    World tracking for WebAR. A Javascript library for Augmented Reality to run SLAM in the browser.

    Project mention: AlvaAR, SLAM algorithm running with WebAssembly in the browser | news.ycombinator.com | 2023-09-23
  • bergamot-translator

    Cross platform C++ library focusing on optimized machine translation on the consumer-grade device.

    Project mention: Fast and secure translation on your local machine with a GUI | news.ycombinator.com | 2024-04-13

    Interestingly, I think this is actually related to the offline translation features built into Firefox. Both are products of "Project Bergamot", but the Mozilla-maintained version was later merged into the Firefox application:

    https://browser.mt/

    https://blog.mozilla.org/en/mozilla/local-translation-add-on...

    https://hacks.mozilla.org/2022/06/training-efficient-neural-...

    https://github.com/mozilla/firefox-translations

    https://firefox-source-docs.mozilla.org/toolkit/components/t...

    Extra webpage with screenshot and links, impossible to search for normally:

    https://translatelocally.com/downloads/

    Does one thing and does it well.

    Oh— For downloading models, it's much easier to pipe/`xargs` `translateLocally --available-models` into `translateLocally -d` than go through the GUI.

    ---

    Other self-hostable translation tools:

    https://www.apertium.org/index.eng.html

    - Traditional rule-based translation. Seems to work pretty well, but no good desktop frontend.

    https://www.argosopentech.com/

    - Works, but crashy desktop app.

    https://libretranslate.com/

    - API wrapping Argos Translate.

    https://lingva.thedaviddelta.com/

    - Google Translate scraper/privacy frontend.

    https://euroglot.com/

    - Proprietary, subscription trialware.

  • wllama

    WebAssembly binding for llama.cpp - Enabling in-browser LLM inference

    Project mention: Wllama: WebAssembly Binding for Llama.cpp | news.ycombinator.com | 2024-05-22
  • fizzy

    Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++. (by wasmx)

  • mujoco_wasm

    Simulate and Render MuJoCo Models in the Browser!

    Project mention: Piano on Paper | news.ycombinator.com | 2024-03-08

    Congratulations on shipping!

    You might find this interesting, a comment on https://news.ycombinator.com/item?id=35376138 (https://news.ycombinator.com/item?id=35379983):

    > I had been playing with the idea of creating a browser-based virtual piano for when I'm travelling and don't have access to a real piano but have my laptop with me. The idea would be to point the webcam down at the table between me and the laptop, and play on the table as if a piano were there. Then use the mediapipe framework [1] to capture finger positions, and use those to update a virtual environment like the one you have here.

    > I put it on hold due to the significant engineering required, but it seems you have already implemented (and open sourced!) the browser-based piano simulation component.

    > A quick scan through your repo indicates that this is all implemented in Python. I see that you are using mujoco_wasm [2].

    [1] https://google.github.io/mediapipe/

    [2] https://github.com/zalo/mujoco_wasm

  • godot-wasm

    Interact with WebAssembly modules from Godot

    Project mention: Show HN: WebAssembly runtime embedded in Godot game engine | news.ycombinator.com | 2023-10-16

    Unfortunately, web exports are not yet supported. See https://github.com/ashtonmeuser/godot-wasm/issues/18 for more details. Web support is on the roadmap.

  • kagome

    Kagome - C++20 implementation of Polkadot Host (by qdrvm)

    Project mention: Polkadot Digest 9 Oct 2023 | /r/Polkadot | 2023-10-10

    Kagome, the C++ version of the Polkadot Host, has released version 0.9.2, including such features as BEEFY consensus and using C++20. https://github.com/qdrvm/kagome/releases/tag/v0.9.2

  • proxy-wasm-cpp-sdk

    WebAssembly for Proxies (C++ SDK)

    Project mention: Unlocking Istio's Versatility: A Guide to WASM Plugins in Kubernetes | dev.to | 2023-07-24

    C++ SDK

  • wasp

    🐝 Wasp : Wasm programming language (by pannous)

    Project mention: webview: Tiny cross-platform webview library for C/C++ | news.ycombinator.com | 2024-05-28

    Together with wasm / js this can give you super lightweight 'electron-like' standalone apps in less than a MB. Used as such in in https://github.com/pannous/wasp/

  • chronotext-cross

    Cross platform infrastructure for developing 2d and 3d applications with C++ and OpenGL

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

C++ WASM discussion

Log in or Post with

C++ WASM related posts

Index

What are some of the best open-source WASM projects in C++? This list will help you:

Project Stars
1 emscripten 25,398
2 filament 17,412
3 SSVM 8,182
4 highway 3,999
5 NectarJS 3,562
6 asm-dom 2,779
7 faust 2,480
8 container2wasm 1,918
9 wasm-fizzbuzz 1,503
10 WaykiChain 1,049
11 faasm 855
12 cib 834
13 WebGui 648
14 AlvaAR 334
15 bergamot-translator 315
16 wllama 241
17 fizzy 210
18 mujoco_wasm 179
19 godot-wasm 170
20 kagome 155
21 proxy-wasm-cpp-sdk 137
22 wasp 109
23 chronotext-cross 64

Sponsored
Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com

Did you konow that C++ is
the 6th most popular programming language
based on number of metions?