V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
tw93
V2EX  ›  分享创造

🤱🏻 用 Rust 打包了一个才 1.8M 的微信读书 Mac App

  •  
  •   tw93 ·
    Tw93 · 2022-10-15 09:14:55 +08:00 · 11130 次点击
    这是一个创建于 530 天前的主题,其中的信息可能已经有所发展或是发生改变。

    总览

    之前用 Rust 打包了一个微信读书的 Mac 版本,1.8M 大小,用了一段时间还不错,将代码开源到 Github ,感兴趣的小伙伴可下载试试,让你可以使用电脑进行阅读,当然也可以基于代码二次开发一些其他有趣的工具。

    🎉 开源地址:https://github.com/tw93/pake

    🏂 下载地址:http://tw93.fun/images/app/WeRead.dmg

    原理

    用 Rust 来打包你的 App ,底层使用 Tauri ,当前支持微信读书,有更多想法,欢迎提 Issue 。

    展示效果

    1

    第 1 条附言  ·  2022-10-15 10:17:11 +08:00

    0.2 新增 Flomo

    2

    第 2 条附言  ·  2022-10-15 18:34:16 +08:00

    为了防止 ETC,说明如下

    1. 这个东西只是一个玩具,不是用来赚钱的,关于你更喜欢 PWA 或者其他的打包方式完全没有问题,喜欢就好
    2. 花了半天搞的,所以只能说能用,或者有朋友想自己折腾折腾,fork 就能用,没有太多优化啥的,后面会持续优化优化,当时开源这种东西,不是甲乙方的关系,而是分享交流而已,V 站我觉得是国内程序员最好的社区,不然其实也不会来分享的。

    关于这个工具的一些特征,说明如下

    • 🏂 :相比传统的 electron 套壳打包,大小要小数十倍,一般 2M 大小
    • 😂 :Pake 的底层使用的 Rust Tauri 框架,性能体验较 JS 框架要轻快不少
    • 🩴 :不是单纯打包,实现了通用快捷键的透传、沉浸式的窗口、拖动、打包样式兼容
    • 🤱🏻 :只是一个玩具,或者说一个用 Rust 替代之前老思路的玩法,欢迎交流

    此贴不再回复,下楼吃螺蛳粉去~

    75 条回复    2023-09-09 00:38:00 +08:00
    fyooo
        1
    fyooo  
       2022-10-15 09:41:40 +08:00
    哇塞,不错啊,暗中观察一下,看看大家会不会被封号,不封的话我再试试
    HopeLee
        2
    HopeLee  
       2022-10-15 09:42:30 +08:00
    赞一个
    sdd11
        3
    sdd11  
       2022-10-15 09:52:20 +08:00 via iPhone
    为啥能这么小,因为用的系统的 webkit 么
    oldshensheep
        4
    oldshensheep  
       2022-10-15 09:52:53 +08:00   ❤️ 44
    感觉是来搞笑的,套个浏览器就成了一个应用了。还有 100 多 STAR ,什么小白这么好骗,眼馋……
    Sting1226
        5
    Sting1226  
       2022-10-15 09:59:17 +08:00   ❤️ 1
    直接网页版不就好了。网页转 App 纯属脱了 kz 放 p 。
    bxb100
        6
    bxb100  
       2022-10-15 10:01:38 +08:00
    虽然但是直接用 PWA 不就好了
    tw93
        7
    tw93  
    OP
       2022-10-15 10:07:18 +08:00 via iPhone
    @Sting1226 爱用不用
    tw93
        8
    tw93  
    OP
       2022-10-15 10:14:37 +08:00
    @fyooo 为啥会封号?
    tw93
        9
    tw93  
    OP
       2022-10-15 10:15:52 +08:00
    @sdd11 是的,rust 里有一个叫做 tauri 的框架搞的
    tw93
        10
    tw93  
    OP
       2022-10-15 10:16:29 +08:00
    @bxb100 其实不是所有的都要做成这样的,更适合那种本来应该是一个 pc 软件的当时没有做的那种,比如说各种阅读类的
    Veneris
        11
    Veneris  
       2022-10-15 10:16:38 +08:00 via iPhone
    不懂就问,这不就是网页套壳吗?
    甚至是把微信读书官方的网页直接套进来
    tw93
        12
    tw93  
    OP
       2022-10-15 10:19:19 +08:00
    @Veneris 是的,不是传统那种,这个性能好一点,而且包巨小,传统套壳一般是 100M 的大小了,相当于包了一个 electron ,这个使用的是当前一个 Rust 中一个比较新的技术 https://tauri.app/ 弄的,可以去了解一下,平时用来做些小工具很合适
    tw93
        13
    tw93  
    OP
       2022-10-15 10:27:51 +08:00
    要不我也点一个赞,哈哈
    dcsuibian
        14
    dcsuibian  
       2022-10-15 10:28:57 +08:00   ❤️ 1
    只是套壳的话没啥用。
    vscode 、draw.io 、typora 做成 app 可以读取、访问本地文件
    clash for windows 是为了改网络设置

    微信读书本来不就有网页版,也不需要调用本地 api ,直接多一个浏览器标签页不好么
    tw93
        15
    tw93  
    OP
       2022-10-15 10:36:40 +08:00
    @dcsuibian 其实各有喜好,怎么都行
    hangbale
        16
    hangbale  
       2022-10-15 10:51:14 +08:00
    最近正在用 tauri 重构之前的一个项目 比 Electron 爽多了
    tw93
        17
    tw93  
    OP
       2022-10-15 10:52:55 +08:00
    @hangbale tauri 我大概半年前开始用,这个东西性能以及和本地交互还是很不错的,就是 rust 很多周边能力还是没有 js 那么丰富,不过愿意折腾其实反而更好玩
    kenken
        18
    kenken  
       2022-10-15 10:56:35 +08:00 via iPhone
    不错,支持一下
    maggch97
        19
    maggch97  
       2022-10-15 11:33:14 +08:00 via Android
    好奇 OP 怎么推广这么短时间拿到这么多 stars 的
    tw93
        20
    tw93  
    OP
       2022-10-15 11:35:43 +08:00
    @maggch97 我在推上也发了下,不少朋友比较喜欢,才想着其实 V 站也有不少喜欢技术的朋友,就顺便也发到这里来了
    mango111
        21
    mango111  
       2022-10-15 11:35:48 +08:00
    @maggch97 你看 op 本来就在经营影响力了,推特啊周报啊群啊发发能触达到很多人
    kidlj
        22
    kidlj  
       2022-10-15 11:57:48 +08:00   ❤️ 1
    感谢作者,我个人很喜欢。
    darer
        23
    darer  
       2022-10-15 12:08:24 +08:00
    win 不打包一下吗
    tw93
        24
    tw93  
    OP
       2022-10-15 12:12:04 +08:00 via iPhone
    @darer 哈哈 有 windows 同学欢迎 fork
    Tink
        25
    Tink  
       2022-10-15 12:18:17 +08:00
    好评,虽然是套壳应用,用起来可以
    kongkongye
        26
    kongkongye  
       2022-10-15 12:24:57 +08:00 via iPhone
    之前喜欢装 app ,现在反过来了,喜欢网页,因为 app 开多了扩展坞会很挤,并且 app 经常需要更新,然后打开加载竟然还没网页快,关闭 app 感觉也不如网页轻量
    TonyHoAspire
        27
    TonyHoAspire  
       2022-10-15 12:46:31 +08:00
    准备支持 Linux 吗?
    muhuan
        28
    muhuan  
       2022-10-15 13:16:08 +08:00
    支持一个
    2NUT
        29
    2NUT  
       2022-10-15 13:22:49 +08:00
    @oldshensheep #4 pwa 有什么问题么?
    tulongtou
        30
    tulongtou  
       2022-10-15 13:26:32 +08:00 via iPhone
    @kongkongye app 怎么能开到扩展坞里去?
    tw93
        31
    tw93  
    OP
       2022-10-15 13:29:18 +08:00 via iPhone
    @tulongtou 安装后打开就在了
    tw93
        32
    tw93  
    OP
       2022-10-15 13:30:19 +08:00 via iPhone
    @TonyHoAspire 可以去看看 tauri 的文档 直接 fork 实现
    tw93
        33
    tw93  
    OP
       2022-10-15 13:32:33 +08:00 via iPhone
    @2NUT 😂 存在就是合理的,很多时候需要拿作品说话
    2NUT
        34
    2NUT  
       2022-10-15 13:33:34 +08:00   ❤️ 1
    @tw93 #33 我是 支持你的, 即使是形式上 一个是 cs 一个 bs ,在客户看来就是本质区别
    tulongtou
        35
    tulongtou  
       2022-10-15 13:35:06 +08:00 via iPhone
    @tw93 那电脑没有插扩展坞会怎样?会打不开么?
    tw93
        36
    tw93  
    OP
       2022-10-15 13:37:31 +08:00 via iPhone
    @2NUT 谢谢
    tw93
        37
    tw93  
    OP
       2022-10-15 13:38:46 +08:00 via iPhone
    @2NUT 哈哈 我的意思是你回复的那哥们喷是合理的,下次我标题和内容尽量注意 防止引起 argue
    Phishion
        38
    Phishion  
       2022-10-15 13:54:35 +08:00
    套不套壳选什么技术路线很重要么?我觉得还是满足用户需求最重要,只能说这个门槛比较低,容易被模仿,对用户来说倒是没差
    tw93
        39
    tw93  
    OP
       2022-10-15 13:56:50 +08:00 via iPhone
    @Phishion 赞同 首先需要满足需求 然后才是技术选择,有时候技术选择能帮助一定程度提高体验和开发效率
    blankmiss
        40
    blankmiss  
       2022-10-15 14:15:43 +08:00
    存在即合理是句误译来着
    icyalala
        41
    icyalala  
       2022-10-15 14:28:00 +08:00   ❤️ 4
    这什么扯淡 MacApp ,就一个 WebView 。。。
    同样的需求,我试了下拿 Xcode 拖个 WebView 加载 https://weread.qq.com ,两分钟就能做出你这个需求,打包出来 213 KB 。

    @2NUT 做 PWA 直接在浏览器里打开,点下安装就能出一个桌面 App 图标,压根就不需要你打包。
    tw93
        42
    tw93  
    OP
       2022-10-15 14:42:21 +08:00 via iPhone
    @icyalala 你 2min 搞好,贴出来看看是不是一样,嘴强王者不如实际操作,少于 5min 算我输,我这边可以半 min 打一个包
    yesterday17
        43
    yesterday17  
       2022-10-15 14:59:18 +08:00
    @tw93 Rust 项目半分钟就能打包完可能不是褒义(
    tw93
        44
    tw93  
    OP
       2022-10-15 15:01:11 +08:00 via iPhone
    @yesterday17 这不是留了一些 buffer 不😂
    callmesmc
        45
    callmesmc  
       2022-10-15 15:51:12 +08:00 via iPhone
    这个可以注入 css 不?
    sinnosong1
        46
    sinnosong1  
       2022-10-15 15:52:16 +08:00
    原来大家电脑上都没有浏览器啊👍👍👍
    tw93
        47
    tw93  
    OP
       2022-10-15 15:56:25 +08:00
    @callmesmc 可以的,这个里面就注入了一些,体验更好一些
    Desiree
        48
    Desiree  
       2022-10-15 15:57:14 +08:00
    存在即合理,楼上没必要一上来就喷的..
    tw93
        49
    tw93  
    OP
       2022-10-15 15:57:33 +08:00
    @sinnosong1 是的 我们这边只能用命令行拨号上网😭
    coderunI
        50
    coderunI  
       2022-10-15 16:15:35 +08:00
    这 star 是真的吗?
    owtotwo
        51
    owtotwo  
       2022-10-15 16:23:19 +08:00   ❤️ 1
    这 stars 数算得上另一种意义的 nb 了
    tw93
        52
    tw93  
    OP
       2022-10-15 16:33:10 +08:00
    @coderunI 假的,talk is cheap, show me the code
    systemcall
        53
    systemcall  
       2022-10-15 17:09:18 +08:00 via Android
    edge 不是可以直接把不是 pwa 的网页也作为应用安装吗?
    搞不懂你这有什么用
    magicdawn
        54
    magicdawn  
       2022-10-15 17:18:16 +08:00   ❤️ 1
    微信网页版并没有做 PWA, 发炎之前自己看一下啊
    jfdnet
        55
    jfdnet  
       2022-10-15 17:50:25 +08:00
    @oldshensheep 很多官方 pc 端也就是网页套壳,这有什么好酸的。
    sdd11
        56
    sdd11  
       2022-10-15 18:11:36 +08:00 via iPhone
    那这个在官网的基础上做了什么优化么?比如加一些快捷键之类的
    tw93
        57
    tw93  
    OP
       2022-10-15 18:13:43 +08:00
    @sdd11 其实网页基本快捷键都是需要支持的,包括沉浸式头、顶部可以拖动、还有样式兼容
    butanediol2d
        58
    butanediol2d  
       2022-10-15 18:17:00 +08:00
    OP 我觉得你做的东西没问题,主要是宣传上出了差错。

    把网页打包成 App 不是伪需求,而且恰恰相反,非常有市场,以至于直接在 Google 上搜索 “Turn any website into desktop Mac app” 已经有一大堆能批量生产、自定义转换网页的产品了。

    根据你的帖子正文来看,你并没有创造什么新东西,普通人包括非程序员只要会搜索就能达成一样的效果。

    所以大伙更关注的是是你这个打包出来的东西有没有什么特殊之处,比如楼上所说的快捷键,或者自定义 CSS 之类的功能。
    icyalala
        59
    icyalala  
       2022-10-15 18:19:29 +08:00
    @tw93 https://bitbucket.org/icyalala/mac_webivew/src/master/
    拖了个 WebView 改改配置,新增了 3 行代码去加载那个 URL ,两分钟。打包点 Archive 只要 5 秒。
    tw93
        60
    tw93  
    OP
       2022-10-15 18:22:38 +08:00
    @butanediol2d 中肯,懒了
    vvhy
        61
    vvhy  
       2022-10-15 18:24:30 +08:00
    @magicdawn #54 chrome 浏览器 ... > 更多 > 创建快捷方式 > 在窗口中打开,和 pwa 没什么区别,这个功能挺好用的
    huohei
        62
    huohei  
       2022-10-15 18:26:49 +08:00 via iPhone
    你说的对,但是在 chrome 里将一个网页作为应用安装只要 5s ,并且大小不到 1m
    tw93
        63
    tw93  
    OP
       2022-10-15 18:35:11 +08:00
    @butanediol2d 已经在附言中补充,谢谢提醒,回复如下

    ----


    ## 为了防止 ETC ,说明如下

    1. 这个东西只是一个玩具,不是用来赚钱的,关于你更喜欢 PWA 或者其他的打包方式完全没有问题,喜欢就好
    2. 花了半天搞的,所以只能说能用,或者有朋友想自己折腾折腾,fork 就能用,没有太多优化啥的,后面会持续优化优化,当时开源这种东西,不是甲乙方的关系,而是分享交流而已,V 站我觉得是国内程序员最好的社区,不然其实也不会来分享的。


    ## 关于这个工具的一些特征,说明如下
    - 🏂 **小**:相比传统的 electron 套壳打包,大小要小数十倍,一般 2M 大小
    - 😂 **快**:Pake 的底层使用的 Rust Tauri 框架,性能体验较 JS 框架要轻快不少
    - 🩴 **特**:不是单纯打包,实现了通用快捷键的透传、沉浸式的窗口、拖动、打包样式兼容
    - 🤱🏻 **玩**:只是一个玩具,或者说一个用 Rust 替代之前老思路的玩法,欢迎交流


    此贴不再回复,下楼吃螺蛳粉去~
    AA5DE3F034ACCB9E
        64
    AA5DE3F034ACCB9E  
       2022-10-15 18:35:15 +08:00
    程序员有必要自贱自己的行业吗?
    jchnxu
        65
    jchnxu  
       2022-10-16 00:22:09 +08:00
    这个是我的需求,浏览器 tab 太多找不到,我做了好几个套壳 app 了。lz 加油
    jianson2006
        66
    jianson2006  
       2022-10-16 00:56:13 +08:00
    @butanediol2d 中肯的回复,值得深思!
    fzdwx
        67
    fzdwx  
       2022-10-16 12:18:16 +08:00
    各位可以瞭解下 https://github.com/tauri-apps/wry 。。
    masker
        68
    masker  
       2022-10-16 22:03:23 +08:00 via Android
    GitHub 的 trending ,有的 repo 也是没什么技术含量,也能有几千甚至上万 stars 的,不知道是刷的还是小白实在太多
    lixile
        69
    lixile  
       2022-10-17 11:38:55 +08:00
    我来说个场景吧
    pwa 的网页也作为应用 确实我在用
    但是浏览器崩溃的时候 所有应用会一起崩溃 这是最不想见到的
    所有 pwa 能有独立的生命周期 才是最好的 这就是应该比较典型的应用场景
    yihy8023
        70
    yihy8023  
       2022-10-17 15:41:34 +08:00
    感觉不错,给楼主赞一个。打开挺快,也很流畅
    linuxsteam
        71
    linuxsteam  
       2022-10-18 06:59:31 +08:00 via iPhone
    electron 还有 native api 呢 可不是光套壳
    A01514035
        72
    A01514035  
       2022-10-21 15:09:54 +08:00
    可不可以打包一个哔哩哔哩和抖音,看看你这个和官方的“客户端”,哪个更好用。
    chancat
        73
    chancat  
       2022-10-22 02:51:41 +08:00 via Android
    我特么看成了 1.8m 的微信。。。赶紧点进来了🙄
    w7777777
        74
    w7777777  
       324 天前
    @vvhy 666 学到了
    2NUT
        75
    2NUT  
       202 天前
    @oldshensheep 现在看看更气人,1 万多 star 了,这个就是技术眼界。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1484 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 17:21 · PVG 01:21 · LAX 10:21 · JFK 13:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.