自己所在的公司有没有生产环境中使用 WebAssembly(WASM) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Geon97
V2EX    程序员

自己所在的公司有没有生产环境中使用 WebAssembly(WASM)

  •  
  •   Geon97 10 天前 5009 次点击

    WebAssembly ( WASM )的话题不像前几年那么多了,现在 ai 的话题是越来越多 WASM 现在是怎样的生态了?

    45 条回复    2025-10-02 01:20:44 +08:00
    ejin
        1
    ejin  
       10 天前
    有点不好意思

    没搞懂怎么用
    ejin
        2
    ejin  
       10 天前
    按说 vue 这种框架应该先用上吧,但是他们似乎都不用,那我就不知道怎么用了,问了 AI 也是云里雾里的。

    我只确定了一条,js 可以和 wasm 程序有交互,但是其他的就不了解了。
    dzdh
        3
    dzdh  
       10 天前
    感觉 api 请求参数加密啥的可以把加密密钥扔到 wasm 里。其他就不知道了。
    horizon
        4
    horizon  
       10 天前
    3D 、语音视频用的多
    danbai
        5
    danbai  
    PRO
       10 天前
    前几天刚发了 3.0
    masterclock
        6
    masterclock  
       10 天前
    试过几次了,没成功
    rabbbit
        7
    rabbbit  
       10 天前   1
    两种场景:
    1 前端需要高性能的场景,例如寻路、图像处理
    2 直接编译现有的 C++ 程序供前端使用
    manami
        8
    manami  
       10 天前
    游戏可能用的比较多,微信、抖音小程序可以用 WebAssembly 转
    Dawnnnnnn
        9
    Dawnnnnnn  
       10 天前
    云原生这边有在用,比如写一些 k8s 网关的插件啥的
    kzfile
        10
    kzfile  
       10 天前
    有用,解析一些我们的私有二进制格式
    andyskaura
        11
    andyskaura  
       10 天前
    有用,diy 的混淆和解密,webp 解码和组图
    caocong
        12
    caocong  
       10 天前
    直接没用过,用过 hash-wasm 这种组件
    coldmonkeybit
        13
    coldmonkeybit  
       10 天前
    只有装的依赖里面用到,直接用没有
    KagurazakaNyaa
        14
    KagurazakaNyaa  
       10 天前
    https://github.com/ffmpegwasm/ffmpeg.wasm
    应该有不少用这个做端侧编解码之类的
    Ketteiron
        15
    Ketteiron  
       10 天前   2
    开发/测试环境玩过,没啥意义
    对一些性能瓶颈在 js 本身的才有意义,一般是 2/3D 、音视频
    Geon97
        16
    Geon97  
    OP
       10 天前
    @andyskaura 可以把密钥放进去。增加 js 逆向的难度
    liuliuliuliu
        17
    liuliuliuliu  
    PRO
       10 天前
    我觉得当前 wasm 的最大问题是不能操作 dom ,也就是说操作 dom 还要用 js ,那也就是说还是无法拜托 js ,那意义就大打折扣了。
    sakuraT1
        18
    sakuraT1  
       10 天前
    弥知有个网页端 AR 好像就是 wasm ,请求这个一个包,里面暴露一些方法给客户端,AR 识别
    zhangyunlu80
        19
    zhangyunlu80  
       10 天前
    之前加密场景有用过,直接 调用 wasm (加密库),保证前端加密算法的绝对安全
    Parva
        20
    Parva  
       10 天前
    使用场景就跟安卓\IOS 用 C 写的库差不多吧
    lizy0329
        21
    lizy0329  
       10 天前
    合成海报也可以用
    Geon97
        22
    Geon97  
    OP
       10 天前
    @liuliuliuliu 是的不太友好,WASM 只能调用 JS ,通过 JS 操作 DOM ,前端的意义不大,但是如果吧密钥放入到 wasm 里要比 js 混淆更安全
    Tyaqing
        23
    Tyaqing  
       10 天前
    做前端 CPU 密集的需求会用到,比如我的图片本地压缩插件就用到 https://www.exportx.dev/

    然后一些应用 web 都会用到,比如 ffmpeg 压缩视频,剪映 web ,其实 web 端做 CPU 密集也只有 WASM ,没有其他可选
    crackidz
        24
    crackidz  
       10 天前
    wasi 我知道有不少公司在用
    bingfengfeifei
        25
    bingfengfeifei  
       10 天前
    C 库,Golang 中使用 wazero 通过 wasm 调用。 消除 CGO
    zhcode
        26
    zhcode  
       10 天前
    用过 wasm 解析 pdf 的三方依赖
    xiaojie668329
        27
    xiaojie668329  
       10 天前
    五六年前就在用了,加密、图像识别和处理
    mightybruce
        28
    mightybruce  
       10 天前
    wasm 前端已经出现在各个公司了比如 ffmpeg wasm , opencv 浏览器 wasm , 后端 wasi 运行时 以及 wasm 还在变化,这个月出现了 wasm 3.0 了,
    现在云原生网关大多支持 wasm

    wasm 运行时是否能代替容器还不一定,但是在云原生 cncf 中已经有众多项目了

    https://landscape.cncf.io/?group=wasm
    ragnaroks
        29
    ragnaroks  
       10 天前
    最常见的就是客户端视频处理了,另外就是页游( unity3d ),其它方面个人确实没看到大规模应用的
    eagleoflqj
        30
    eagleoflqj  
       10 天前 via iPhone
    公司没在用,但我自己很感兴趣
    把 fcitx5 做成了 wasm 在浏览器跑 https://github.com/fcitx-contrib/fcitx5-online
    也在往 ChromeOS 移植 https://github.com/fcitx-contrib/fcitx5-chrome
    subframe75361
        31
    subframe75361  
       9 天前 via Android
    一些 Local First 的应用会用到 sqlite-wasm 或者 pglite
    AoEiuV020JP
        32
    AoEiuV020JP  
       9 天前
    算有?音视频会议的证书验证相关是 go 语言写的闭源,web 前端和接口 nodejs 是加载的 go 编译出的 wasm ,
    abelmakihara
        33
    abelmakihara  
       9 天前
    正儿八经看过有用的网页也就是上传视频处理的了 还是个人网页
    94
        34
    94  
       9 天前
    需要用到的早就用上了,没有用上的也不会应为发布了 3.0 就上 WASM 。
    mundane
        35
    mundane  
       9 天前
    有用啊,比如用 ffmpeg.wasm 在浏览器端进行音频格式的转换,我开发的一个 https://opsutomp3.io 就是用了这个
    mundane
        36
    mundane  
       9 天前
    @mundane 不好意思,是 https://opustomp3.io
    chenluo0429
        37
    chenluo0429  
       9 天前 via Android
    wasm 在生产端有很多重大的问题
    1. 低版本可用性差,在 chrome98 及以下版本上,wasm 代码编译展开的速度非常慢
    2. wasm 虽然运行效率高,但是和 js 之间传递数据需要拷贝,低效且占用双份内存
    3. wasm 内存区块一旦分配无法回收,提案通过遥遥无期。即使通过并且实装,大部分设备支持 gc 我估计十五年内都不一定会实现
    hengshenyu
        38
    hengshenyu  
       9 天前 via Android
    以前都是用 wasm 成品库,最近把一个项目中的一个计算密集的函数转到了 wasm ,性能提升了两到三倍
    skiy
        39
    skiy  
       9 天前 via iPhone
    运行时有点多,不知道哪个好用。
    yyj08070631
        40
    yyj08070631  
       9 天前
    @Geon97 其实一样的,wasm 包是公开的,只要逆向一下 js 的调用逻辑,一样可以输出正确结果,只是不知道 wasm 的内部逻辑而已
    visper
        41
    visper  
       9 天前
    在前端算 MD5 的时候,对大一点的文件,使用 wasm 的比 js 库的计算 md5 要快好多。
    xiaoxiuaoliang
        42
    xiaoxiuaoliang  
       9 天前
    @visper 大文件一般采取采样 MD5 的策略。注意,绝大多数情况,我们都不必追求 100%的准确性(事实上连 md5 算法自身都无法保证 100%)
    ligolas
        43
    ligolas  
       9 天前
    除了前端使用,wasm 还能在 nodejs 中使用。因此理论上,wasm 给 nodejs 提供了除 addon 之外的另一套集成自定义开发模块的选项。当然具体场景用哪个好像还是要分情况,看到过有些讨论,但是都并不深入。
    sharpy
        44
    sharpy  
       9 天前
    做一些图像图形处理的时候,修改了 skia 的 canvaskit ,用起来还可以
    Gilfoyle26
        45
    Gilfoyle26  
       8 天前
    figma 用了,速度确实牛逼。这个看场景,不是每个公司都有这个场景。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     884 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 22:23 PVG 06:23 LAX 15:23 JFK 18:23
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86