webassembly001 webassembly简述
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
相关文章:

webassembly001 webassembly简述
WebAssembly 官方地址:https://webassembly.org/相关历史 https://en.wikipedia.org/wiki/WebAssembly https://brendaneich.com/2015/06/from-asm-js-to-webassembly/WebAssembly(缩写为Wasm)是一种基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编…...

vue 使用C-Lodop打印小票
先从官网下载js文件 https://www.lodop.net/LodopDemo.html 打开安装程序,一直下一步既可,我这边已经安装过就不演示了。 // 引入 import { getLodop } from /utils/CLodopfuncs.js;// 使用 let LODOP getLodop()let Count LODOP.GET_PRINTER_COUNT…...

【C++进阶(二)】STL大法--vector的深度剖析以及模拟实现
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 vector 1. 前言2. 熟悉vector的接口函数2.1 vec…...

1. import pandas as pd 导入库
【目录】 文章目录 1. import pandas as pd 导入库1. pandas库的概念2. 导入pandas库2.1 常规导入2.2 别名导入 3. 别名的作用4. 课堂练习 【正文】 1. import pandas as pd 导入库 【学习时间】 10分钟 1. pandas库的概念 pandas:熊猫panda的复数, …...

DMK5框选变量之后不显示其他位置的此变量高亮
使用软件MDK5.3.8版本 如下在2的位置选择之后,其他同样的变量没有高亮,因为1的原因折叠了; 展开折叠之后就可以了...
0061__Appium
Appium Documentation - Appium Documentation APP自动化测试(3)-Appium Inspector介绍_六天测试工程师的博客-CSDN博客 https://github.com/appium/appium-inspector https://github.com/appium/appium-desktop https://github.com/appium/appium...
【DEVOPS】需求跟踪管理全面落地
0. 目录 1. 现状/背景2. 需求管理存在的问题3. 改进思路/措施4. 所谓"禅道尚未普及/铺开"5. 最后6. 相关 1. 现状/背景 近期又被领导问到"如何对项目过程中的需求进行量化和跟踪管理"。这真是一个狗皮膏药似的问题,反反复复地,隔一…...
算法修炼Day57|647. 回文子串 ● 516.最长回文子序列
LeetCode:647. 回文子串 647. 回文子串 - 力扣(LeetCode) 1.思路 暴力思路见对应代码… 动规解法:画图推导动规公式,当前状态由左侧和左下角推出,所以首层应该采用倒序的方式,内部采用正序的方式。 2.…...

呈现数据的精妙之道:选择合适的可视化方法
在当今数据时代,数据可视化已成为理解和传达信息的重要手段。然而,选择适合的数据可视化方法对于有效地呈现数据至关重要。不同的数据和目标需要不同的可视化方法,下面我们将探讨如何选择最佳的数据可视化方法来呈现数据。 1. 理解数据类型&a…...

数据结构(Java实现)-java对象的比较
元素的比较 基本类型的比较 在Java中,基本类型的对象可以直接比较大小。 对象比较的问题 Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较 默认情况下调用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的…...

Wolfram Mathematica 13 for Mac 数学计算工具
Wolfram Mathematica for Mac是一款功能强大、划时代的科学计算软件。它结合了数字和符号计算引擎、图形系统、编程语言、文本系统以及与其他应用程序的高级连接,在许多功能方面处于世界领先地位,截至2009年,它是使用最广泛的数学软件之一。人…...

系统架构设计高级技能 · Web架构
现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 Web架构 一、Web架构介绍1.1 Web架构涉及技术1.2 单台服务…...

再写CentOS7升级OpenSSL-1.0.1U
本文在CentOS7.4以及TencentOS 2.4上测试通过。 原系统自带OpenSSL 1.0.2k-fips。 编译安装方法跟之前的没啥区别。 从官网下载1.0.1u版https://www.openssl.org/source/ 使用tar解包 tar xfz openssl-1.0.1u.tar.gz 依次执行如下: cd openssl-1.0.1u ./con…...

HBase--技术文档--基本概念--《快速扫盲》
官网 Apache HBase – Apache HBase™ Home 阿里云hbase 云数据库HBase_大数据存储_订单风控_数据库-阿里云 云数据库 HBase-阿里云帮助中心 基本概念 HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。它基于Hadoop,采用列式存储方式,可…...

如何利用SFTP协议远程实现更安全的文件传输 ——【内网穿透】
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 文章目录 1. 安装openSSH1.1 安装SSH1.2 启动ssh 2. 安装cpolar2.1 配置termux服务 3. 远程SFTP连接配置3.1 查看生成的随机公…...

深度学习8:详解生成对抗网络原理
目录 大纲 生成随机变量 可以伪随机生成均匀随机变量 随机变量表示为操作或过程的结果 逆变换方法 生成模型 我们试图生成非常复杂的随机变量…… …所以让我们使用神经网络的变换方法作为函数! 生成匹配网络 培养生成模型 比较基于样本的两个概率分布 …...

sql入门-多表查询
案例涉及表 ----------------------------------建表语句之前翻看之前博客文章 多表查询 -- 学生表 create table studen ( id int primary key auto_increment comment id, name varchar(50) comment 姓名, no varchar(10) comment 学号 ) comment 学生表; insert…...

软考A计划-网络工程师-必考知识点-上
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…...
kafka复习:(17)seekToBeginning的用法
从分区的开始进行消费,因为kafka会定期清理历史数据,所以分区开始的位移不一定为0。seekToBeginning只是从目前保留的数据中最小的offset进行消费 package com.cisdi.dsp.modules.metaAnalysis.rest.kafka2023;import org.apache.kafka.clients.consume…...

C# textBox1.Text=““与textBox1.Clear()的区别
一、区别 textbox.Text "" 和 textbox.Clear() 都可以用于清空文本框的内容,但它们之间有一些细微的区别。 textbox.Text "": 这种方式会将文本框的 Text 属性直接设置为空字符串。这样会立即清除文本框的内容,并将文本框显示为空…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...