WebAssembly
- 官方地址:https://webassembly.org/
- 相关历史 https://en.wikipedia.org/wiki/WebAssembly https://brendaneich.com/2015/06/from-asm-js-to-webassembly/
- WebAssembly(缩写为Wasm)是一种基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编程语言的可移植编译目标,支持在网络上部署客户端和服务器应用程序。
- Wasm 被设计为用于编译 C/C++/Rust 等高级语言的可移植目标,从而可以在 Web 上部署客户端和服务器应用程序。
Web Assembly 不是开发人员必须编写的东西,但代码是用 C、C++、Rust 等语言编写的,并且可以编译为 WebAssembly (wasm)。相同的代码可以在 Web 浏览器中运行。 - WASM 不是一种编程语言。简而言之,它是一种将用一种编程语言编写的代码转换为浏览器可理解的机器代码的技术。
- WebAssembly 是一门新语言,代码是低级汇编语言,但凭借其文本格式特性,代码可读性强,必要时可以调试。
在线工具 WebAssembly Studio
- 将 C/C++ 和 Rust 代码编译为 WASM 格式。
- https://webassembly-studio.kamenokosoft.com/
- https://github.com/wasdk/WebAssemblyStudio
在线工具 WasmFiddle
- https://wasdk.github.io/WasmFiddle/
- 從 C 到 WasmFiddle
- 通过WasmFiddle平台构建WASM模块
一些项目
多语言
- Run WordPress in the browser via WebAssembly PHP https://github.com/WordPress/wordpress-playground
- Go wazero: the zero dependency WebAssembly runtime for Go developers https://github.com/tetratelabs/wazero
- pywasm: A WebAssembly interpreter written in pure Python.
- WebAssembly 运行 Python https://2022.pycon.de/program/SBCNDY
- .NET blazor https://dotnet.microsoft.com/zh-cn/apps/aspnet/web-apps/blazor https://github.com/elderjames/ant-design-blazor
- Swift
- Kotlin
- Java
- COBOL
基础应用
-
Desktop environment in the browser https://github.com/DustinBrett/daedalOS
-
https://github.com/WasmVM/WasmVM
-
Cloudflare Workers 上的 WebAssembly
-
v86| 通过 WebAssembly 运行 x86 兼容的虚拟机 https://github.com/copy/v86
-
https://github.com/whitphx/stlite
-
https://browsix.org/
-
tensorflow-js https://blog.tensorflow.org/2020/03/introducing-webassembly-backend-for-tensorflow-js.html
-
OpenCV.js https://docs.opencv.org/3.4/d5/d10/tutorial_js_root.html
-
Rust / Wasm framework for building client web apps
-
PainterEngine是一个由C语言编写的完整开源的跨平台图形应用框架,可移植到Windows Linux Android iOS 支持WebAssembly的Web端及嵌入式MCU上
-
https://www.painterengine.com/main/instances/instance2021122401/index.html
数据库&大数据
- WebAssembly介绍及其在数据库方向的应用前景
- 在 Github 页面上托管 SQLite 数据库 https://phiresky.github.io/blog/2021/hosting-sqlite-databases-on-github-pages/
- Postgres WASM| 开源 WASM 运行 PostgresSQL 方案 https://supabase.com/blog/postgres-wasm
- WebAssembly 在 MOSN 中的实践
数据分析
- DNA分析 How We Used WebAssembly To Speed Up Our Web App By 20X (Case Study)
- A data visualization and analytics component, especially well-suited for large and/or streaming datasets.
- WebAssembly 在性能及加密场景的深度探索
文件编辑
- https://www.vimonlineeditor.com/
- https://github.com/rsms/markdown-wasm
- https://livehelp.unity.com/article/unity-2018-2zheng-shi-zhi-chi-webassembly
音视频+ 图像
- https://earth.google.com/web/ How we’re bringing Google Earth to the web
- Background Features in Google Meet, Powered by Web ML
- WebAssembly 将 Figma 的加载时间缩短了 3 倍
- Zoom on Web:WebAssembly SIMD、WebTransport 和 WebCodecs
- bilibili WebAssembly 在多媒体场景的实践与思考
- Build FFmpeg WebAssembly version (= ffmpeg.wasm)
- 搭建webassembly网页播放器
- https://github.com/facebookresearch/segment-anything
- https://github.com/DmitriyValetov/onnx_wasm_example
- https://github.com/imgly/background-removal-js/tree/main
- AI-Powered Photos App for the Decentralized Web
智能问答
- Are you aware that whisper.cpp has a WASM-version as well?
- https://ggml.ai/?utm_source=talkingdev
- Talk - GPT-2 meets Whisper in WebAssembly
- https://github.com/lxe/wasm-gpt
- https://github.com/saharNooby/rwkv.cpp
- ggml implementation of BERT
- An example of running local models with GGML
- ggml implementation of the baichuan13b model (adapted from llama.cpp)
游戏
- RUST+ WebAssembly :从零开始创建一个WebAssembly游戏
- https://beta.unity3d.com/jonas/AngryBots/
其他
-
WebAssembly :A fast and secure runtime for WebAssembly
-
WebAssembly Micro Runtime (WAMR)
-
https://www.jc2182.com/webassembly/webassembly-introduction.html
-
C++ + WebAssembly :WebAssembly技术解密
-
wasm的底层解释:https://rsms.me/wasm-intro
-
了解 WebAssembly 的基礎使用方法 https://github.com/guybedford/wasm-demo
-
CG
- Web 工作进程可以在独立于 Web 应用程序主执行线程的后台线程中运行脚本操作。这样做的优点是可以在单独的线程中执行费力的处理,允许主线程(通常是 UI)线程运行而不会被阻塞/减慢速度。
- 对象用于表示通用的原始二进制数据缓冲区,类似于 ArrayBuffer 对象,但可用于在共享内存上创建视图。
- https://www.zhihu.com/question/265700379
- https://www.v2ex.com/t/552383
- asm.js和WebAssembly有什么区别?
- Understanding asm.js
- https://github.com/asm-js
- WebAssembly 能干什么?8个WebAssembly 应用案例
- Run JavaScript/WASM in Python: high-level SpiderMonkey bindings to Python with PythonMonkey