SaaSHub helps you find the best software and product alternatives Learn more β
Top 23 C++ WebAssembly Projects
-
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.
-
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.
-
perspective
A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
usearch
Fast Open-Source Search & Clustering engine Γ for Vectors & π Strings Γ in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram π
-
AlvaAR
World tracking for WebAR. A Javascript library for Augmented Reality to run SLAM in the browser.
-
bergamot-translator
Cross platform C++ library focusing on optimized machine translation on the consumer-grade device.
-
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
Project mention: Python HTTP library 'urllib3' now works in the browser | news.ycombinator.com | 2024-01-30Browsers 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...
Project mention: Ask HN: How Can I Make My Front End React to Database Changes in Real-Time? | news.ycombinator.com | 2024-04-17
https://github.com/WebAssembly/wabt/blob/main/wasm2c/README.... is a straightforward way to take an untrusted application (compiled already to wasm) and turn it into C that you can embed into your application or compile to a linkable DLL. I believe this approach has been used to sandbox untrusted libraries in production by Mozilla: https://hacks.mozilla.org/2021/12/webassembly-and-back-again...
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.
Project mention: I'm writing a new vector search SQLite Extension | news.ycombinator.com | 2024-05-02Might 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.
Project mention: Architecture diagrams enable better conversations | news.ycombinator.com | 2023-08-22A 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()
The experience has really improved the last few months thanks to the Swift Server Work Group [3].
- Apple platforms have their own Foundation implementation and the open-source one is incomplete.
[1]: https://www.swift.org/source-code/
[2]: https://swiftwasm.org/
[3]: https://www.swift.org/blog/vscode-extension/
Project mention: Parquet-WASM: Rust-based WebAssembly bindings to read and write Parquet data | news.ycombinator.com | 2024-04-22i 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.
Project mention: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta | news.ycombinator.com | 2024-01-31
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
Project mention: AlvaAR, SLAM algorithm running with WebAssembly in the browser | news.ycombinator.com | 2023-09-23
Project mention: Fast and secure translation on your local machine with a GUI | news.ycombinator.com | 2024-04-13Interestingly, 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.
C++ WebAssembly related posts
-
Fortran on WebAssembly
-
42.parquet β A Zip Bomb for the Big Data Age
-
DuckDB-WASM: WebAssembly Version of DuckDB
-
Show HN: Mutable.ai β Turn your codebase into a Wiki
-
A WASM runtime for running LLMs locally
-
Ask HN: Best blog tutorial explaining Assembly code?
-
Understanding Every Byte in a WASM Module
-
A note from our sponsor - SaaSHub
www.saashub.com | 10 May 2024
Index
What are some of the best open-source WebAssembly projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | emscripten | 25,199 |
2 | SSVM | 7,974 |
3 | perspective | 7,574 |
4 | wabt | 6,427 |
5 | magnum | 4,673 |
6 | asm-dom | 2,773 |
7 | opencv-mobile | 2,156 |
8 | container2wasm | 1,810 |
9 | usearch | 1,691 |
10 | wasm-fizzbuzz | 1,500 |
11 | Diagon | 1,432 |
12 | swift | 1,251 |
13 | duckdb-wasm | 931 |
14 | faasm | 843 |
15 | N64Wasm | 594 |
16 | RaZ | 521 |
17 | wasmdec | 390 |
18 | AlvaAR | 317 |
19 | bergamot-translator | 301 |
20 | rlbox | 278 |
21 | OpenGL_CMake_Skeleton | 276 |
22 | magnum-examples | 268 |
23 | krkrsdl2 | 261 |
Sponsored