WebAssembly Weekly 集合整理(2021 / 05)
整理了一下 WebAssembly Weekly 上从 2017 年至 2021 年 5 月这段时间出现的,有关 Wasm 的一些技术实践和技术产品。
新兴语言(Emerging Language)
- Walt - 用于 WAT 的类 JavaScript 语法(比 WAT 再抽象一层);
let counter: i32 = 0;
export function decrement(): i32 {
counter -= 1;
return counter;
}
export function increment(): i32 {
counter += 1;
return counter;
}
多媒体处理(Multimedia Processing)
- GlitchBitch - 用于在图片上制作“毛刺”效果的 JavaScript 插件;
- Color Palette - 基于 K-Means 实现的图像调色板(从图像上选取主题色)应用;
- WebAssembly ZXing - 基于 Wasm 的 Zxing Web 实现(用于二维码扫描和识别);
- WASM Fractal Generator - 基于 Wasm 的分形发生器;
- Squoosh - 在线图片处理工具;
- draw-app - 简易的在线画图应用;
- Photon - 可用于 Web 应用的在线图像处理库;
- ogv.js - JavaScript 媒体播放器(Ogg / Vorbis / Theora / Opus / WebM);
- WXInlinePlayer - 高效的 FLV 流媒体解码器(H.264/H.265);
- MakePad - 基于 Wasm 的在线 Shader 编译器;
- ffmpeg.wasm - JavaScript 版本的 FFmpeg。
仿真器(Emulator)
- SaltyNES - 一个 NES 仿真器;
- Pinky - 基于 Rust 构建的 NES 仿真器;
- wasmboy - 基于 AssemblyScript 编写的 Game Boy 仿真器;
- TweetX86 - 基于 Nasm 等构建的 X86 汇编仿真器;
- gomeboycolor - Game Boy Color 仿真器;
- chip8-wasm - Chip-8 仿真器;
- Ruffle - Flash Player 仿真器;
- nes-rust - NES 仿真器。
Web 前端框架(Web Frontend)
- Yew - 一个可以使用 Rust 构建 Web 前端应用的框架;
- Seed - 一个可以使用 Rust 构建 Web 前端应用的框架;
- Vugu - 一个可以使用 Go 构建 Web 应用的 UI 框架;
- Vecty - 一个可以使用 Go 构建响应式、动态的 Web 框架;
- Perspective - 基于 Wasm 的实时数据可视化组件;
- QT - Wasm 版 QT;
- Frogui - 基于 C# 和 .NET 实现的 UI 框架;
- Prism - 使用 Ruby 构建 Web 应用的前端框架;
- asm-dom - 基于 C++ 构建的 V-DOM,可用于构建 Web 应用;
- go-vdom-wasm - 基于 Go 构建的 V-DOM,可用于构建 Web 应用;
- Blazor - 基于 C# 的 Wasm Web UI 框架。
库(Library)
- GLMW - 一个基于 Wasm 的矩阵和向量生成库;
- ONNX.js - 可以在 JavaScript 中运行 ONNX 模型的库;
- WASM-PDF - 可以使用 Wasm 和 JavaScript 生成 PDF 文件的库;
- webm-wasm - 可以使用 Wasm 和 JavaScript 生成 webm 视频的库;
- argon2-browser - Wasm 移植版的密码哈希函数库 Argon2;
- tensorflow.js - Tensorflow H5 版本;
- hash-wasm - 基于 Wasm 的哈希高性能哈希函数;
- wasm-jseval - 基于 Wasm / Duktape / QuickJS 构建的安全的 JavaScript Eval 库。
物联网(IOT)
- Nebulet - 一个可以在 Ring0 中运行的,基于 Wasm 实现的“用户模式”微内核;
- wasmachine - 基于 FPGA 实现的 Wasm 规范。
编译器(Compiler)
- WasmFiddle - 支持 C/C++ 的 Wasm 在线编译器;
- WebAssembly Studio - 功能齐全的 Wasm 在线开发 IDE;
- WasmExplorer - 支持 C/C++ 的 Wasm 在线编译器,可生成 X86 汇编代码;
- wat2wasm - 一个 WAT 到 Wasm 在线编译器;
- wasm2wat - 一个 Wasm 到 WAT 编译器(需从本地上传 Wasm 二进制模块文件);
- Cheerp - Wasm 编译器;
- NectarJS - JavaScript Native 编译器,可以将 JavaScript 编译为 Native Code;
- brainfuck2wasm - 一个 BrainFuck 到 Wasm 的编译器;
- JWebAssembly - 一个 Java 字节码到 Wasm 的编译器;
- Bytecoder - 可于将 Java 字节码解释并转换为如 Wasm 等其他语言的编译器;
- WAForth - 用于 Wasm 的 Forth 解释器和编译器;
- wasmdec - 一个 Wasm 到 C 编译器;
- TINYGO - 一个 Go 到 Wasm 编译器;
- wag - 一个使用 Go 实现的 Wasm 编译器(字节码 -> 机器码);
- Emscripten - 人尽皆知的强大 Wasm 编译工具链;
- ilwasm - 一个 CIL 到 Wasm 编译器;
- Asterius - 一个 Haskell 到 Wasm 编译器;
- AssemblyScript - 一个 TypeScript 到 Wasm 编译器;
- Asmble - 一个 Wasm 到 JVM 字节码编译器;
- CobWeb - 一个 COBOL 到 Wasm 编译器。
虚拟机/运行时(Virtual Machine / Runtime)
- WAVM - Wasm 虚拟机;
- Life - Go 语言编写的安全、快速的 Wasm 虚拟机。主要用于分布式应用程序;
- Wasmjit - 用于 Linux 的内核模式 Wasm 运行时;
- Wasmer - 带有包管理能力的 Wasm 虚拟机;
- Lucet - 支持 WASI 的 Wasm 编译器/虚拟机;
- WAMR - Wasm 轻量级编译器/虚拟机;
- Wasm3 - 基于 C 编写的高性能 Wasm 解释器;
- GraalWasm - GraalVM 系列中用于 Wasm 的引擎;
- Faasm - 一个无状态的 Serverless Wasm 运行时;
- wasmtime - 使用 Cranelift 构建的独立的 Wasm 运行时引擎;
- wac - 基于 C 编写的高性能 Wasm 解释器;
- warpy - 基于 Python 编写的 Wasm 解释器;
- pywasm - 基于 Python 编写的 Wasm 解释器;
- SSVM - 专注于 AI、区块链应用的 Wasm 虚拟机;
- Lunatic - 受 Erlang 语言启发的 Wasm 虚拟机。
云(Cloud)
- waSCC Host - Wasm 安全能力连接器;
- Krustlet - 支持 Wasm 的 Kubernetes Kubelet;
- embly - 一个基于 Wasm 的 Serverless Web 应用框架;
- olin - Wasm 云代码分析工具(跟踪诸如使用了多少指令,进行了多少次系统调用以及使用了多少内存等情况);
- atmo - 可用于编写基于函数(Runnable)的云原生应用。这些 Runnable 最后会被编译为 Wasm 格式来运行;
- WAGI - 使用 Wasm 格式代码作为 HTTP 请求的处理函数。
游戏引擎(Game Engine)
- Defold - 一个用于 Web 和移动端的游戏开发引擎;
- d3wasm - Tech4 / Doom3 基于 Wasm 的移植版;
- ammo.js - Bullet 物理引擎的 Wasm 移植版;
- Oryol - 一个小型可移植的 C++ 3D 开发框架;
- ammo.js - Bullet 物理引擎的 Wasm 移植版;
- Unity - Unity;
- Unreal Engine - Unreal Engine。
工具(Tool)
- Wasabi - 一个用于 Wasm 的动态分析框架;
- inNative - 一个用于 Wasm 的 Native 嵌入层;
- Wasienv - 用于 C/C++ 的 WASI 开发工具;
- WABT - Wasm 二进制工具集;
- Binaryen - Wasm 编译器基础设施和工具链。
教学(Education)
- WebAssembly Code Explorer - 以直观的方式探索 Wasm 二进制模块的字节组成方式。
性能测试(Benchmark)
- wasm-raytracer - 自定义用于 Wasm 的光线追踪器测试集;
- WASM-vs-JS-Pitch-detector - 基于 McLeod 音高检测算法的测试;
- PSPDFKit - 基于 PSPDFKit 的 Wasm 性能测试;
- WebAssembly-benchmark - 简单的 JavaScript 与 Wasm 性能对比测试集。
其他(Others)
- d3-wasm-force - 基于 Wasm 重写的 d3-force;
- ewasm - Wasm 版“以太坊”;
- vim.wasm - Wasm 版 VIM 编辑器;
- redshirt - 基于 Wasm 的操作系统;
- Stork - 用于静态页面的内容搜索工具;
- tinysearch - 用于静态页面全文本搜索引擎;
- zellij - Rust 编写的命令行(其插件系统支持 Wasm 多语言);
- wasi-fs-access - 一个运行在浏览器中的命令行应用。借助于 WASI、Wasm 以及 Asyncify 构建。基于 File System Access 标准,它可以访问并修改用户的本地文件。
评论 | Comments