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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/93246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flask获取请求对象的get和post参数

前言 get请求参数是在URL里面的,post请求参数是放在请求头里面的 get请求: index_page.route("/get") def get():var_a request.args.get("a", "jarvis")return "request:%s,params:%s,var_a:%s" %(request…

【2023深圳杯数学建模A题思路模型与代码分享】

2023深圳杯数学建模A题 A题 影响城市居民身体健康的因素分析解题思路第一问第二问第三问第四问 技术文档第一问完整代码写在最后 A题 影响城市居民身体健康的因素分析 以心脑血管疾病、糖尿病、恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病(以下简称慢性病…

软件设计师学习笔记7-输入输出技术+总线+可靠性+性能指标

目录 1.输入输出技术 1.1数据传输控制方式 1.2中断处理过程 2.总线 3.可靠性 3.1可靠性指标 3.2串联系统与并联系统 3.3混合模型 4.性能指标 1.输入输出技术 即CPU控制主存与外设交互的过程 1.1数据传输控制方式 (1)程序控制(查询)方式&…

如何保证缓存和 MySQL 的双写一致 ?

1. 如何保证缓存和 MySQL 的双写一致 ? 什么叫做如何保证缓存和 MySQL 双写一致,这个问题就是指当应用程序执行写(增删改)操作时,如何保证 Redis 和 MySQL 的数据一致性。 当用户发送请求时,程序的执行流程…

深眸科技创新赋能视觉应用产品,以AI+机器视觉解决行业应用难题

随着工业4.0时代的加速到来,我国工业领域对于机器视觉技术引导的工业自动化和智能化需求持续上涨,国内机器视觉行业进入快速发展黄金期,但需求广泛出现同时也对机器视觉产品的检测能力提出了更高的要求。 传统机器视觉由人工分析图像特征&am…

threejs特殊几何体(一:文字几何体对象)

threejs中文字几何体通过newTextGeometry&#xff08;&#xff09;生成&#xff0c;它被单独作为一个类存在于threejs中const txtGeo new TextGeometry("threejs", { ...opts, font: font }); 我们先看效果&#xff1a; <template><div></div> &…

Compose - 交互组合项

按钮 Button OutLinedButton带外边框、TextButton只是文字、IconButton只是图标形状。 Button(onClick { }, //点击回调modifier Modifier,enabled true, //启用或禁用interactionSource MutableInteractionSource(),elevation ButtonDefaults.elevatedButtonElevation( /…

大语言模型之六- LLM之企业私有化部署

数据安全是每个公司不得不慎重对待的&#xff0c;为了提高生产力&#xff0c;降本增效又不得不接受新技术带来的工具&#xff0c;私有化部署对于公司还是非常有吸引力的。大语言模型这一工具结合公司的数据可以大大提高公司生产率。 私有化LLM需要处理的问题 企业内私有化LLM…

聊一聊微前端框架的选型和实现 | 业务平台

一、项目背景 目前&#xff0c;我们开发维护的项目主要有 6 个&#xff0c;但是分别对应 PC 和 H5 两个端&#xff1a; 如上图所示&#xff0c;我们 6个项目最开始是一个一个进行开发维护的&#xff0c;但是到后期&#xff0c;这几个项目之间有的部分会有业务逻辑不同&#xff…

攻防世界-Web_php_unserialize

原题 解题思路 注释说了flag存在f14g.php中&#xff0c;但是在wakeup函数中&#xff0c;会把传入的文件名变成index.php。看wp知道&#xff0c;如果被反序列话的字符串其中对应的对象的属性个数发生变化时&#xff0c;会导致反序列化失败而同时使得__wakeup 失效&#xff08;CV…

4.14 HTTPS 中 TLS 和 TCP 能同时握手吗?

目录 实现HTTPS中TLS和TCP同时握手的前提&#xff1a; 什么是TCP Fast Open&#xff1f; TLS v1.3 TCP Fast Open TLSv1.3 HTTPS都是基于TCP传输协议实现的&#xff0c;得先建立完可靠得TCP连接才能做TLS握手的事情。 实现HTTPS中TLS和TCP同时握手的前提&#xff1a; 1、…

【CP2K学习】-在Ubuntu上安装CP2K的全过程(包括gcc,gfortran,MKL等配置)

在Ubuntu中安装CP2K CP2K的安装检查系统是否安装gcc,gfortranMKL数学库的安装CP2K安装包下载CP2K的编译CP2K的测试ssmp版本测试popt版本测试 CP2K是第一性原理计算程序中发展迅速的程序之一&#xff0c;因其开源性、速度性等优点&#xff0c;是广大计算化学研究者的选择。 本文…

Git企业开发控制理论和实操-从入门到深入(三)|分支管理

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

原生web实现不固定列数的表格、随机列、document、querySelector、forEach、hasOwnProperty、call、includes

文章目录 效果图公共样式第一种解决方案(不推荐)第二种解决方案(强烈推荐) 效果图 公共样式 .d_f {display: flex; }.flex_1 {flex: 1; }.jc_sb {justify-content: space-between; }.ai_c {align-items: center; }.bc_ccc {background-color: #cccccc; }/* ------------paddin…

Ribbon:listOfServers ,${variableName:defaultValue}

解释&#xff1a; 配置了address的地址,请求会走address&#xff0c;也就是http://127.0.0.1:8081&#xff0c;通常用户与别的后端服务进行联调设置为其本地服务的ip。 如果address的地址被注释掉&#xff0c;如下面所示&#xff0c;类似这样的占位符${variableName:defaultVa…

Kafka学习笔记

目录 常见术语如何解决数据重复和数据乱序幂等性幂等性的缺陷事务事务原子性事务原理流程图 如何解决数据积压解决方法 Kafka的高水位&#xff08;HW&#xff09;和Leader Epoch副本同步机制解析Leader Epoch是如何解决消息丢失和消息不一致的问题的 常见术语 Kafka的三层消息…

Web安全测试(三):SQL注入漏洞

一、前言 结合内部资料&#xff0c;与安全渗透部门同事合力整理的安全测试相关资料教程&#xff0c;全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试&#xff0c;覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬&#xff01; 全部…

简述docker映射(Mapping)和挂载(Mounting)

映射的概念&#xff1a; 将容器内的端口映射到主机的端口上&#xff0c;这样就可以通过主机的网络接口与容器内部进行通信。主机上对应端口的请求会被转发到容器内部&#xff0c;从而实现对容器内部程序的通信访问&#xff08;注意&#xff01;这里提到的容器内部的端口并不一定…

arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题

不知道小伙伴使用arcgis server服务做查询的时候&#xff0c;有没有遇到下面的问题 原因是查询结果中出现*字符 这个问题一直困扰了我很久&#xff1a;因为从数据库查询的坐标点是没有问题的。 一开始有同事遇到过&#xff0c;说重新插入下就好了&#xff0c;有时候确实能解决…

Qt 获取文件图标、类型 QFileIconProvider

Qt中获取系统图标、类型是通过QFileIconProvider来实现的&#xff0c;具体如下&#xff1a; 一、Qt获取系统文件图标1、获取文件夹图标QFileIconProvider icon_provider;QIcon icon icon_provider.icon(QFileIconProvider::Folder);2、获取指定文件图标QFileInfo file_info(n…