C++ WebAssembly

Open-source C++ projects categorized as WebAssembly

Top 23 C++ WebAssembly 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...

  • 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
  • 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
  • perspective

    A data visualization and analytics component, especially well-suited for large and/or streaming datasets.

  • Project mention: Ask HN: How Can I Make My Front End React to Database Changes in Real-Time? | news.ycombinator.com | 2024-04-17
  • wabt

    The WebAssembly Binary Toolkit

  • Project mention: Wuffs: Wrangling Untrusted File Formats Safely | news.ycombinator.com | 2024-05-16

    Wuffs is cool, but you can get similar results writing normal C library code, compiling it into a .wasm binary via Clang, and then running the .wasm binary through the `wasm2c` tool of the WebAssembly Binary Toolkit [0]. I personally prefer this method, although Wuffs will usually produce faster code.

    [0]: https://github.com/WebAssembly/wabt/tree/44837a7236e85c048de...

  • magnum

    Lightweight and modular C++11 graphics middleware for games and data visualization

  • asm-dom

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

  • opencv-mobile

    The minimal opencv for Android, iOS, ARM Linux, Windows, Linux, MacOS, WebAssembly

  • 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: Apple Introduces M4 Chip | news.ycombinator.com | 2024-05-07

    The existence of vscode.dev always makes me wonder why Microsoft never released an iOS version of VSCode to get more users into its ecosystem. Sure, it's almost as locked down as the web environment, but there's a lot of space in that "almost" - you could do all sorts of things like let users run their code, or complex extensions, in containers in a web view using https://github.com/ktock/container2wasm or similar.

  • usearch

    Fast Open-Source Search & Clustering engine Γ— for Vectors & πŸ”œ Strings Γ— in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram πŸ”

  • Project mention: I'm writing a new vector search SQLite Extension | news.ycombinator.com | 2024-05-02

    Might have a look at this library:

    https://github.com/unum-cloud/usearch

    It does HNSW and there is a SQLite related project, though not quite the same thing.

  • wasm-fizzbuzz

    WebAssembly from Scratch: From FizzBuzz to DooM.

  • Diagon

    Interactive ASCII art diagram generators. :star2:

  • Project mention: Architecture diagrams enable better conversations | news.ycombinator.com | 2023-08-22

    A few more ASCII-based tool that you could add into your workflow are https://arthursonzogni.com/Diagon/#Sequence which can be used to generate the ASCII that you input into something like Typogram (https://google.github.io/typograms/).

    For example, input:

      Renderer -> Browser: BeginNavigation()

  • swift

    WebAssembly support for the Swift programming language (by swiftwasm)

  • duckdb-wasm

    WebAssembly version of DuckDB

  • Project mention: Parquet-WASM: Rust-based WebAssembly bindings to read and write Parquet data | news.ycombinator.com | 2024-04-22

    i think duckdb-wasm is closer to 6MB over wire, but ~36MB once decompressed. (see net panel when loading https://shell.duckdb.org/)

    the decompressed size should be okay since it's not the same as parsing and JITing 36MB of JS.

  • 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
  • N64Wasm

    A web based N64 Emulator

  • RaZ

    Modern & multiplatform 3D game engine in C++17

  • wasmdec

    WebAssembly to C decompiler

  • Project mention: Capturing the WebGPU Ecosystem | news.ycombinator.com | 2023-11-11

    I think you're missing a good amount of nuance here

    minified JS can be turned into reasonable JS, yes, but you're probably not going to get TypeScript code back, so the same sort of challenge exists there.

    Assembly -> high-level language is harder, but there are absolutely binary -> C decompilers that are very popular/used in the RE community to make changes to existing programs.

    But that doesn't even matter, WASM is much higher level than assembly, it's a stack machine, there is no arbitrary control flow / labels / `goto`, there are pre-defined data types, etc. all of this means it's easier to convert WASM -> high-level language than it is with a generic x86/arm binary.

    There are WASM decompilers[0][1] which can convert WASM binaries into C code and back.

    In both cases (minified JS and WASM), you're not going to get out exactly what you put in, but WASM doesn't really change the situation very much given the widespread adoption of 'compile to JS' languages like TypeScript these days.

    [0] https://chromium.googlesource.com/external/github.com/WebAss...

    [1] https://github.com/wwwg/wasmdec

  • 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.

  • rlbox

    RLBox sandboxing framework

  • OpenGL_CMake_Skeleton

    :heart: A ready to use cmake skeleton using GLFW, Glew and glm. :+1:

  • magnum-examples

    Examples for the Magnum C++11 graphics engine

  • krkrsdl2

    ε‰ι‡Œε‰ι‡ŒSDL2γƒ—γƒ­γ‚Έγ‚§γ‚―γƒˆ (ε‰ι‡Œε‰ι‡Œ2γ¨ε‰ι‡Œε‰ι‡ŒZγŒγƒ™γƒΌγ‚Ή) / Kirikiri SDL2 Project (Based on Kirikiri 2 and Kirikiri Z)

  • 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++ WebAssembly related posts

Index

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

Project Stars
1 emscripten 25,219
2 SSVM 7,995
3 perspective 7,589
4 wabt 6,442
5 magnum 4,678
6 asm-dom 2,773
7 opencv-mobile 2,163
8 container2wasm 1,825
9 usearch 1,730
10 wasm-fizzbuzz 1,500
11 Diagon 1,433
12 swift 1,250
13 duckdb-wasm 943
14 faasm 844
15 N64Wasm 598
16 RaZ 523
17 wasmdec 390
18 AlvaAR 318
19 bergamot-translator 302
20 rlbox 278
21 OpenGL_CMake_Skeleton 278
22 magnum-examples 268
23 krkrsdl2 262

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com