TypeScript WASM

Open-source TypeScript 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 TypeScript WASM Projects

  • tfjs

    A WebGL accelerated JavaScript library for training and deploying ML models.

  • Project mention: JavaScript Libraries for Implementing Trendy Technologies in Web Apps in 2024 | dev.to | 2024-04-09

    TensorFlow.js

  • pglite

    Lightweight Postgres packaged as WASM into a TypeScript library for the browser, Node.js, Bun and Deno

  • Project mention: Show HN: I open-sourced the in-memory PostgreSQL I built at work for E2E tests | news.ycombinator.com | 2024-04-07

    Hey HN! For a few months, I've been building pgmock at work for our E2E and unit test suite. It emulates Postgres in WebAssembly and has full feature parity with production databases.

    The cool thing about it is that you don't need any external processes or proxies. If your platform can run WASM (Node.js, browser, etc.), it can probably run pgmock. Creating a new database with mock data is as simple as creating a JavaScript object.

    It's a bit different from the amazing pglite [1] (which inspired me to open-source pgmock in the first place). While pgmock runs an x86 emulator, pglite compiles a Postgres fork to native WASM directly and is hence much faster and more lightweight. However, it only supports single-user mode and a select few extensions, so you can't connect to it with normal Postgres clients (which is quite crucial for E2E testing).

    Theoretically, it could be modified to run any Docker image on WebAssembly platforms. Anything specific you'd like to see?

    Happy hacking!

    [1] https://github.com/electric-sql/pglite

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

    SurveyJS logo
  • jupyterlite

    Wasm powered Jupyter running in the browser 💡

  • Project mention: SymPy: Symbolic Mathematics in Python | news.ycombinator.com | 2024-02-28

    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://JupyterLite.rtfd.io/

    https://github.com/jupyterlite/jupyterlite/tree/main/py/jupy... :

    > Initial support for interactive visualization libraries such as: altair, bqplot, ipywidgets, matplotlib, and plotly

  • quadratic

    Quadratic | Data Science Spreadsheet with Python & SQL

  • Project mention: Quadratic – Open-Source Spreadsheet Is Now Multiplayer | news.ycombinator.com | 2024-02-01

    https://github.com/quadratichq/quadratic/issues

  • workers-sdk

    ⛅️ Home to Wrangler, the CLI for Cloudflare Workers®

  • Project mention: Discord Bot with Cloudflare AI | dev.to | 2024-04-13

    Workers

  • pretzelai

    Open-source, browser-local data exploration using DuckDB-Wasm and PRQL

  • Project mention: Using Google Sheets as the back end/APIs of your app | news.ycombinator.com | 2024-04-12
  • resvg-js

    A high-performance SVG renderer and toolkit, powered by Rust based resvg and napi-rs.

  • 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
  • quickjs-emscripten

    Safely execute untrusted Javascript in your Javascript, and execute synchronous code that uses async functions

  • Project mention: New QuickJS Release | news.ycombinator.com | 2023-12-09

    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

  • wasm4

    Build retro games using WebAssembly for a fantasy console.

  • Project mention: WASM Instructions | news.ycombinator.com | 2024-02-18

    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:

    https://github.com/qemu/qemu/tree/master/target

  • webr

    The statistical language R compiled to WebAssembly via Emscripten, for use in web browsers and Node.

  • Project mention: Fortran on WebAssembly | news.ycombinator.com | 2024-04-05

    A little context: this dive into Fortran is part of the excellent work George has been doing on WebR, to get R running in the browser. The R sources contain a fair bit of Fortran code, and I believe WebR originally used f2c to compile the Fortran to C first, before compiling that to wasm.

    With the patches to LLVM Flang, WebR can be built with a real Fortran compiler.

    I think George didn't want to say it directly in the blog post, but he has said that he's hoping that Flang would take his patches or implement better ones. That would be a win-win -- these patches wouldn't need to be maintained separately, and since unmodified Flang would be able to compile to wasm, it would benefit other projects out there that use Fortran.

    https://docs.r-wasm.org/webr/latest/

  • runno

    Browser-based runtime for programming languages and WASI binaries.

  • tauri-tutorial

    📚 Tauri Tutorial (系列教程 - 打造属于自己的跨端应用)

  • 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

  • magick-wasm

    The WASM library for ImageMagick

  • run-wasm

    Run WASM based code executions in the browser easily

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

  • vite-plugin-rsw

    🦞 wasm-pack plugin for Vite

  • metatype

    Declarative API development platform. Build backend components with WASM, Typescript and Python, 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
  • hpcc-js-wasm

    HPCC-Systems Web-Assembly (JavaScript)

  • brotli-wasm

    A reliable compressor and decompressor for Brotli, supporting node & browsers via wasm

  • wrap-cli

    Used to create, build, and integrate wraps.

  • obsidian-note-linker

    🔗 Automatically link your Obsidian notes.

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

TypeScript WASM related posts

  • Discord Bot with Cloudflare AI

    1 project | dev.to | 13 Apr 2024
  • Developing your own Chrome Extension - Fetch with a Proxy and Cloudflare Workers (Part 5)

    1 project | dev.to | 3 Mar 2024
  • Drastically Cut CI Time in an Nx Monorepo with Remote Task Caching: A Step-by-Step Guide

    2 projects | dev.to | 15 Jan 2024
  • WebR – R in the Browser (using WASM)

    1 project | news.ycombinator.com | 14 Nov 2023
  • Help achieving one culture

    1 project | /r/eu4 | 12 Oct 2023
  • Browser-based notetaking with Vim keybindings?

    3 projects | /r/vim | 13 Jul 2023
  • Are there any generally accepted standards for inter-microservice communication? Or does everyone just go it their own?

    3 projects | /r/node | 6 Jul 2023
  • A note from our sponsor - SaaSHub
    www.saashub.com | 17 May 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Index

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

Project Stars
1 tfjs 18,151
2 pglite 4,506
3 jupyterlite 3,669
4 quadratic 2,728
5 workers-sdk 2,297
6 pretzelai 1,462
7 resvg-js 1,430
8 quickjs-emscripten 1,141
9 wasm4 1,072
10 webr 774
11 runno 590
12 tauri-tutorial 521
13 videotranscode.space 484
14 magick-wasm 472
15 run-wasm 464
16 virtual-background 454
17 web-synth 421
18 vite-plugin-rsw 378
19 metatype 313
20 hpcc-js-wasm 294
21 brotli-wasm 248
22 wrap-cli 168
23 obsidian-note-linker 170

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