webAssembly 目前是个啥情况

2022-07-12 09:38:31 +08:00
 iapplebear

概念出现已经很多年了,有人在商业项目用过这个吗?

10608 次点击
所在节点    程序员
69 条回复
libook
2022-07-12 12:22:32 +08:00
浏览器的支持情况: https://caniuse.com/?search=WebAssembly
GitHub 上一些项目的情况: https://github.com/search?o=desc&q=webassembly&s=stars&type=Repositories
官方建议的使用场景: https://webassembly.org/docs/use-cases/
Google 把 Google Earth 移植到浏览器上的实践: https://web.dev/earth-webassembly/
Autodesk 把 AutoCAD 移植到浏览器上: https://blogs.autodesk.com/autocad/autocad-web-app-google-io-2018/
一些应用情况: https://www.zhihu.com/question/265700379

不光是浏览器上的,已经有些商业项目开始利用 Webassembly 的兼容性和沙盒机制用在服务端上了,具体可以搜 server-side Webassembly

个人看法是挺成熟且广泛应用了。
heganj
2022-07-12 12:41:56 +08:00
https://blog.stackblitz.com/posts/introducing-webcontainers/
在前端跑 node ,适合给别人做 demo 展示
ragnaroks
2022-07-12 13:39:31 +08:00
如果愿意的话,任何基于 unity3d 且不使用特定平台接口的游戏都可以跑在 wasm 上
dcsuibian
2022-07-12 13:42:59 +08:00
Figma 真的是标杆。说明了这个技术确实有应用场景,而且非常实用。
B 站在视频上传时就能选择封面,似乎就用到了 wasm 技术。

我挺喜欢这个技术,也看好它的未来。但一般人确实没有用它的必要。
①普通增删改查用不上 ②技术要求比较高,普通开发者玩不转
感觉处境类似于 WebGL 。
andyJado
2022-07-12 13:59:42 +08:00
1. 对比谷歌地球和百度地图, 非常直观.

2. 像我这种不会 js 的直接 all in rust 了要写前端只能用 wasm
wdwwtzy
2022-07-12 14:05:17 +08:00
blazor 已经有一些应用了啊,无论国内国外,可以看看官网的案例
https://dotnet.microsoft.com/en-us/platform/customers/blazor
murmur
2022-07-12 14:06:34 +08:00
@andyJado js 比 rust 简单多了,语言都是用的精华面试糟粕,很多东西必须要面试那么复杂的解决
murmur
2022-07-12 14:06:50 +08:00
*必须-》不需要
andyJado
2022-07-12 14:12:53 +08:00
@murmur 简单也是学, 难也是学, 肯定学难的呀🙆
3dwelcome
2022-07-12 14:15:52 +08:00
@murmur js 擅长处理文本。可问题是离开了传统前端后,一大半的应用程序,都不仅仅只是在处理文本,还要解析各种二进制文件格式,处理网络二进制数据包。

我也不太喜欢 rust ,但比 js 硬写要好很多。
masterclock
2022-07-12 14:25:30 +08:00
尝试 wasmedge ,正在摸索,感觉核心很棒,但缺乏生态; riscv 上实践太不成熟。
AyaseEri
2022-07-12 14:41:04 +08:00
想试试用 wasm 做一个 bpmn 的流程图编辑工具,但感觉好像又没太大必要
xzysaber
2022-07-12 15:01:03 +08:00
期待服务端的发展。
HFX3389
2022-07-12 15:26:13 +08:00
我看到某些视频网站都用 wasm 做 TS 流的加密解密了,如果不解密直接下载下来就会发现视频是花的,只有声音
dayeye2006199
2022-07-12 15:34:00 +08:00
机器学习有些应用。比如把 tensoflow 跑在浏览器里的 tensoflow.js
把 Jupyter notebook 跑在浏览器里 JupyterLite
chuhemiao
2022-07-12 15:34:10 +08:00
icp => canister , 当您为在 Internet 计算机上运行的 dapp 编写源代码时,您会将源代码编译为 WebAssembly 模块。当您在 Internet Computer 区块链上部署包含您的程序的 WebAssembly 模块时,该程序将在称为罐的概念计算单元内执行,或简称罐。

https://www.internetcomputer.wiki/docs/training/glossary#canister-identifier
ShareManT
2022-07-12 15:35:14 +08:00
@3dwelcome 恩恩。很多旧时代的游戏都可以搬到网页端
novolunt
2022-07-12 15:38:09 +08:00
国外一般用 yew.rs 统一前后端,Perseus 这个也很多人用
@xzysaber
novolunt
2022-07-12 16:05:02 +08:00
AssemblyScript 用得也多吧
xzysaber
2022-07-12 16:30:09 +08:00
@novolunt 谢谢,之前只关注了 wasmedge 相关的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865575

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX