With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js. Learn more →
Top 23 TypeScript WASM Projects
-
Many people seem to be unaware of tensorflow.js, an official JS implementation of TF
https://github.com/tensorflow/tfjs
I'd love to see PyTorch in JS, but I think unless you get it running on the GPU it won't be able to do much.
-
The JupyterLite Python-compiled-to-WASM build has NumPy, SciPy, matplotlib, and SymPy installed; so you can do computer algebra with SymPy in a browser tab.
https://github.com/jupyterlite/jupyterlite/tree/main/py/jupy... :
> Initial support for interactive visualization libraries such as: altair, bqplot, ipywidgets, matplotlib, and plotly
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
Project mention: Quadratic – Open-Source Spreadsheet Is Now Multiplayer | news.ycombinator.com | 2024-02-01
-
-
-
quickjs-emscripten
Safely execute untrusted Javascript in your Javascript, and execute synchronous code that uses async functions
Based on your comment below I think you figured out the difference - but if you're looking to execute JS, you can pick between ShadowRealm (where available, or using a polyfill) or my library quickjs-emscripten.
Pros of quickjs-emscripten over ShadowRealm:
- You can use quickjs today in any browser with WASM. ShadowRealm isn't available yet, and polyfills have had security issues in the past. See https://www.figma.com/blog/an-update-on-plugin-security/
- In ShadowRealm eval, untrusted code can consume arbitrary CPU cycles. With QuickJS, you can control the CPU time used during an `eval` using an [interrupt handler] that's called periodically during the eval.
- In ShadowRealm eval, untrusted code can allocate arbitrary amounts of memory. With QuickJS, you can control both the [stack size] and the [heap size] available inside the runtime.
- quickjs-emscripten can do interesting things with custom module loaders and facades that allow synchronous code inside the runtime to call async code on the host.
Pros of ShadowRealm over QuickJS:
- ShadowRealm will (presumably?) execute code using your native runtime, probably v8, JavaScriptCore, or SpiderMonkey. Quickjs is orders of magnitude slower than JIT'd javascript performance of v8 etc. It's also slower than v8/JSC's interpreters, although not by a huge amount. See [benchmarks] from 2019.
- You can easily call and pass values to ShadowRealm imported functions. Talking to quickjs-emscripten guest code requires a lot of fiddly and manual object building.
- Overall the quickjs(-emscripten) API is verbose, and requires manual memory management of references to values inside the quickjs runtime.
[interrupt handler]: https://github.com/justjake/quickjs-emscripten/blob/main/doc...
[stack size]: https://github.com/justjake/quickjs-emscripten/blob/main/doc...
[heap size]: https://github.com/justjake/quickjs-emscripten/blob/main/doc...
[benchmarks]: https://bellard.org/quickjs/bench.html
-
Related:
A fast Pascal (Delphi) WebAssembly interpreter:
https://github.com/marat1961/wasm
WASM-4:
https://github.com/aduros/wasm4
Curated list of awesome things regarding WebAssembly (wasm) ecosystem:
https://github.com/mbasso/awesome-wasm
Also, it would be nice if there was a WASM (soft) CPU for QEMU, which (if it existed!) would go here:
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
Project mention: Show HN: WhatTheDuck – open-source, in-browser SQL on CSV files | news.ycombinator.com | 2024-03-26
Cool stuff, we are also building in the space, currently adding Python support with Pyodide. I would recommend you add your live website at the top of the README so people can find it easily (we had a lot of views that way for https://github.com/pretzelai/pretzelai). Also, we added a simple text2sql "Ask AI" that users loved, maybe your users will like it too.
-
webr
The statistical language R compiled to WebAssembly via Emscripten, for use in web browsers and Node.
-
-
-
videotranscode.space
A video transcoder and converter built using Web Assembly and FFMPEG to transcode and convert videos right in your browser while protecting your privacy
-
-
virtual-background
Demo on adding virtual background to a live video stream in the browser (by Volcomix)
-
-
web-synth
A web-based sound synthesis, music production, and audio experimentation platform (by Ameobea)
-
-
metatype
Declarative API development platform. Build backend components with zero-trust and less code, no matter where and how your (legacy) systems are.
Project mention: Build declaratively back ends and APIs with GraphQL or REST | /r/hypeurls | 2023-08-14 -
-
-
-
-
monolith-of-web
A chrome extension to make a single static HTML file of the web page using a WebAssembly port of monolith CLI
Project mention: Reddit limits the use of API to 1000,Let's work together to save the content of StableDiffusion Subreddit as a team | /r/sdforall | 2023-06-17From the project page, I wasn't able to properly gague if it had that support. But here is a Chrome extension based on it that I just found: https://github.com/rhysd/monolith-of-web
-
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.
TypeScript WASM related posts
- Developing your own Chrome Extension - Fetch with a Proxy and Cloudflare Workers (Part 5)
- Drastically Cut CI Time in an Nx Monorepo with Remote Task Caching: A Step-by-Step Guide
- WebR – R in the Browser (using WASM)
- Help achieving one culture
- Browser-based notetaking with Vim keybindings?
- Are there any generally accepted standards for inter-microservice communication? Or does everyone just go it their own?
- Is there a way to look at all tabs and map modes after you finish a game?
-
A note from our sponsor - SurveyJS
surveyjs.io | 28 Mar 2024
Index
What are some of the best open-source WASM projects in TypeScript? This list will help you:
Project | Stars | |
---|---|---|
1 | tfjs | 18,041 |
2 | jupyterlite | 3,551 |
3 | quadratic | 2,653 |
4 | workers-sdk | 2,134 |
5 | resvg-js | 1,373 |
6 | quickjs-emscripten | 1,087 |
7 | wasm4 | 1,052 |
8 | pretzelai | 780 |
9 | webr | 739 |
10 | runno | 581 |
11 | tauri-tutorial | 492 |
12 | videotranscode.space | 484 |
13 | run-wasm | 462 |
14 | virtual-background | 450 |
15 | magick-wasm | 445 |
16 | web-synth | 413 |
17 | vite-plugin-rsw | 373 |
18 | metatype | 307 |
19 | hpcc-js-wasm | 292 |
20 | brotli-wasm | 239 |
21 | wrap-cli | 169 |
22 | obsidian-note-linker | 157 |
23 | monolith-of-web | 141 |