JavaScript WebAssembly

Open-source JavaScript projects categorized as WebAssembly | Edit details

Top 23 JavaScript WebAssembly Projects

  • Tesseract.js

    Pure Javascript OCR for more than 100 Languages 📖🎉🖥

    Project mention: Import tables from reddit, monsters from PDFs, and more! | reddit.com/r/FoundryVTT | 2022-01-24

    I just played with this for a second https://tesseract.projectnaptha.com/ It seemed to work OK as long as the image was high enough resolution even with a fairly busy background. Took maybe 5-10 seconds to run on a Sea Spawn stat block.

  • Porcupine  

    On-device wake word detection powered by deep learning.

    Project mention: Alternative to AlwaysOnHotwordDetector API in Android since it has been deprecated? | reddit.com/r/androiddev | 2021-10-16
  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • telegram-react

    Experimental Telegram web client with tdlib, webassembly and react js under the hood

    Project mention: How to Create a Telegram Bot with Node.js and Sanity | dev.to | 2021-06-22

    Secondly, Telegram is open source and can be rebuilt from the ground up using the source code (check out the React version). So if you have fun with our project, there's no limit to how far you can extend it in the ecosystem!

  • BootstrapBlazor

    A set of enterprise-class UI components based on Bootstrap and Blazor

  • opus-recorder

    A library for encoding and decoding web audio as OggOpus.

    Project mention: Flask breaks webpage | reddit.com/r/flask | 2021-08-04

    // size of one wav in ms var PACKAGESIZE = 175; // offset proportion for delay from recders ( if .5 recoder2 starts at the midlle of recorder1) var OFFSETRATIO = 0.99; var BRIDGERATIO = 0.05; // audio streamer implementation using https://github.com/chris-rudmin/opus-recorder to record audio data and convert to real 16bit pcm mono wav file // sending wav to flask server using post via ajax blob post function screenLogger(text, data) { log.innerHTML += "\n" + text + " " + (data || ''); // console.log(text); } var recorder = new Recorder({ monitorGain: 0, recordingGain: 1, numberOfChannels: 1, wavBitDepth: 16, encoderPath: "../static/dist/waveWorker.min.js" }); // function startRecording(){recorder.start();console.log("started recording");} document.getElementById("startRecording").addEventListener("click", function(){recorder.start();console.log("start");}); //#region recorder1 recorder.onstart = function(){ screenLogger('Recorder is started'); setTimeout(function(){recorder.stop();},PACKAGESIZE); }; recorder.onstop = function(){ screenLogger('Recorder is stopped'); recorder.start(); }; recorder.onstreamerror = function(e){ screenLogger('Error encountered: ' + e.message ); }; recorder.ondataavailable = function( typedArray ){ console.log(recorder.encodedSamplePosition); console.log("data available"); var dataBlob = new Blob( [typedArray], { type: 'audio/wav' } ); var form = new FormData(); form.append('file', dataBlob, "fileName"); form.append('title', "fileName2"); $.ajax({ type: 'POST', url: 'http://127.0.0.1:5000/send', crossDomain: true, data: form, cache: false, processData: false, contentType: false }).done(function(data,status) { console.log(data,status); screenLogger("result:",data); }); var fileName = new Date().toISOString() + ".wav"; var url = URL.createObjectURL( dataBlob ); var audio = document.createElement('audio'); audio.controls = true; audio.src = url; var link = document.createElement('a'); link.href = url; link.download = fileName; link.innerHTML = link.download; var li = document.createElement('li'); li.appendChild(link); li.appendChild(audio); recordingslist.appendChild(li); }; //#endregion //#region recoder2 var recorder2 = new Recorder({ monitorGain: 0, recordingGain: 1, numberOfChannels: 1, wavBitDepth: 16, encoderPath: "../static/dist/waveWorker.min.js" }); recorder2.onstart = function(){ screenLogger('Recorder 2 is started'); setTimeout(function(){recorder2.stop();},PACKAGESIZE*BRIDGERATIO); }; recorder2.onstop = function(){ screenLogger('Recorder 2 is stopped'); recorder2.start(); }; recorder2.onstreamerror = function(e){ screenLogger('Error encountered: ' + e.message ); }; recorder2.ondataavailable = function( typedArray ){ console.log("data available 2 "); var dataBlob = new Blob( [typedArray], { type: 'audio/wav' } ); var form = new FormData(); form.append('file', dataBlob, "fileName"); form.append('title', "fileName2"); $.ajax({ type: 'POST', url: 'http://127.0.0.1:5000/send', crossDomain: true, data: form, cache: false, processData: false, contentType: false }).done(function(data,status) { console.log(data,status); screenLogger("result:",data); }); var fileName = new Date().toISOString() + ".wav"; var url = URL.createObjectURL( dataBlob ); var audio = document.createElement('audio'); audio.controls = true; audio.src = url; var link = document.createElement('a'); link.href = url; link.download = fileName; link.innerHTML = link.download; var li = document.createElement('li'); li.appendChild(link); li.appendChild(audio); recordingslist.appendChild(li); }; //#endregion

  • webassemblyjs

    Toolchain for WebAssembly

    Project mention: webassemblyjs VS adawebpack - a user suggested alternative | libhunt.com/r/webassemblyjs | 2021-12-28
  • wasmer-js

    Monorepo for Javascript WebAssembly packages by Wasmer

    Project mention: Announcing the Deno Company | reddit.com/r/javascript | 2021-03-29

    Maybe wasmer-js could be used by Deno to provide WASI support inside their engine? :-)

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • camaro

    camaro is an utility to transform XML to JSON, using Node.js binding to native XML parser pugixml, one of the fastest XML parser around.

    Project mention: Piscina – The Node.js Worker Pool | news.ycombinator.com | 2021-03-22

    AFAIK this is a wrapper of worker_threads API. https://github.com/tuananh/camaro utilises this for multi-threading processing of XML input.

  • DotNetJS

    Consume C# from JavaScript with comfort: single-file UMD library, auto-generated 2-way bindings and type definitions.

    Project mention: DotNetJS: Use C# in any JavaScript environment: browsers, Node.js, VS Code web extensions, etc. | reddit.com/r/csharp | 2021-12-14
  • wasm4

    Build retro games using WebAssembly for a fantasy console.

    Project mention: WASM-4 Fantasy Console 2.0 tagged, with new languages Nim, Odin, & Zig | reddit.com/r/contextfree | 2021-11-27
  • javascriptmusic

    A.K.A. WebAssembly Music. Live coding music and synthesis in Javascript / AssemblyScript (WebAssembly)

    Project mention: WebAssembly Music | news.ycombinator.com | 2021-10-26
  • argon2-browser

    Argon2 library compiled for browser runtime

    Project mention: How did LastPass master passwords get compromised? | news.ycombinator.com | 2021-12-30

    > is there really fast enough implementations available to the browser

    Browsers have pretty good support for surfacing native code SHA family hash functions which you can use to speed up PBKDF2. It's called the Web Crypto API and it's available even in Internet Explorer 11. [1]

    If you're willing to drop support for IE11 and older phones like the iPhone 4S, then you get access to WebAssembly. With WASM you can get a bunch of custom algorithms to be quite fast. The Argon2 browser WASM library claims to be only about 10x slower than optimized native code. [2]

    It's not perfect, but it isn't as bad as it used to be with just pure JavaScript.

    --

    [1] https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_...

    [2] https://github.com/antelle/argon2-browser

  • wasm-bindgen-rayon

    An adapter for enabling Rayon-based concurrency on the Web with WebAssembly.

    Project mention: pcisph-wasm: real-time fluid simulation in the browser using Rust, WebAssembly threads, and WebGL | reddit.com/r/rust | 2021-09-09

    Thanks! Agreed--this project was possible thanks to the excellent wasm-bindgen-rayon crate which was recently released.

  • create-near-app

    Create a starter app hooked up to the NEAR blockchain

    Project mention: Building dApp with Near Protocol and React | dev.to | 2021-12-03

    For near dapps there is a npx binary create-near-app. It has some options to choose what type of frontend you are going to use and also what type of smart contract you are going to use. Here are the option you can use:

  • iswasmfast

    Performance comparison of WebAssembly, C++ Addon, and native implementations of various algorithms in Node.js.

    Project mention: Node.js 16 Available Now | news.ycombinator.com | 2021-04-20

    WASM has its moments, as you can see in this[1] benchmark it outperforms JS and native addons on certain tasks.

    Since the bottleneck with native addons is usually data copying/marshalling, and we have direct access to WebAssembly memory from the JavaScript side, using WebAssembly on this "shared" memory might become the best approach for computationally heavy tasks. I wrote about it a bit here[2].

    [1] https://github.com/zandaqo/iswasmfast

  • youtube-musical-spectrum

    Audio visualizer for YouTube with musical notes.

    Project mention: Show HN: YouTube Musical Spectrum – visualizer for YouTube with musical notes | news.ycombinator.com | 2021-08-10

    I left this comment with a video screencapture of the extension in action > https://github.com/mfcc64/youtube-musical-spectrum/issues/2

    > As someone who has been learning how to sing for the past year, I have tried many spectrum tools and have come across one that is really useful for singing with my own voice but isn't that great for multi-frequency visualization and therefore isn't that good for learning other songs but THIS extension really fills a void for learning other songs!!

    I like how I can tell the voice from the instruments in this song by the vibrato visualization: https://www.youtube.com/watch?v=450p7goxZqg

  • ssvm-nodejs-starter

    A template project to run Rust functions in Node.js through the Second State WebAssembly engine.

  • monero-javascript

    A Node.js library for using Monero

    Project mention: Is there a browser wallet for Monero like metamask? | reddit.com/r/Monero | 2021-08-10

    Someone just needs to create a browser plugin which communicates with a local wallet instance (e.g. monero-wallet-rpc) using a library like monero-javascript.

  • desktop-app

    [DEPRECATED]💻 Mixin Messenger desktop app for Windows, macOS, and Linux powered by Electron.

    Project mention: What is the lowest cost way to buy XMR as an American? | reddit.com/r/Monero | 2022-01-14

    Check out the XMR trading pairs listed by Mixswap in Mixin Messenger.

  • alon

    Remix for Solana.

    Project mention: Solana Program Dev Tools – Alon IDE and Solang Compiler | news.ycombinator.com | 2021-11-29

    - Tool [https://lithdew.github.io/alon/]

  • aioli

    Framework for building fast genomics web tools with WebAssembly and WebWorkers

    Project mention: Show HN: Jq Play in the Browser via Web Assembly | news.ycombinator.com | 2021-09-23

    I, and many others, use jq play[0] a lot to craft queries.

    However, jqplay.org sends everything to a back end behind the scene, so it can be slow for big input json, and not great for privacy.

    Someone recently integrated jq compiled to web assembly in aioli.js[1], so I decided to make a jq play clone that runs in the browser.

    It does not support sharing a query, but it's minimal, and does what I need for now.

    [0]: https://jqplay.org/

    [1]: https://github.com/biowasm/aioli

  • svelte-wasm

    Project mention: TypeScript or WASM | reddit.com/r/WebAssembly | 2021-02-11

    The idea is essentially to do all serious work in Rust via WASM, and use Svelte/Typescript solely to handle UI/IO. Someone put a up a starter repo for this approach here https://github.com/tobiasbernet/svelte-wasm.

  • examples

    Example actors, capability providers, and other demonstrations (by wasmCloud)

    Project mention: wasmCloud/examples | reddit.com/r/wasmcloud | 2021-05-05
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). The latest post mention was on 2022-01-24.

JavaScript WebAssembly related posts

Index

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

Project Stars
1 Tesseract.js 25,393
2 Porcupine   2,630
3 telegram-react 1,734
4 BootstrapBlazor 882
5 opus-recorder 810
6 webassemblyjs 637
7 wasmer-js 480
8 camaro 464
9 DotNetJS 431
10 wasm4 373
11 javascriptmusic 261
12 argon2-browser 242
13 wasm-bindgen-rayon 186
14 create-near-app 173
15 iswasmfast 162
16 youtube-musical-spectrum 115
17 ssvm-nodejs-starter 112
18 monero-javascript 100
19 desktop-app 84
20 alon 81
21 aioli 68
22 svelte-wasm 62
23 examples 58
Find remote jobs at our new job board 99remotejobs.com. There are 30 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
OPS - Build and Run Open Source Unikernels
Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.
github.com/nanovms