Hacker News 中文摘要

RSS订阅

Electrobun v1:使用TypeScript快速构建轻量级跨平台桌面应用 -- Electrobun v1: Build fast, tiny, and cross-platform desktop apps with TypeScript

文章摘要

作者因不满现有桌面应用开发框架的复杂低效,基于多年开发经验,花费两年时间学习多种编程语言后,推出了Electrobun v1。这是一个用TypeScript构建快速、轻量、跨平台桌面应用的新框架,旨在简化开发流程,解决Electron等工具在代码签名、分发更新等方面的痛点,延续作者早年用Visual Basic和Adobe AIR开发桌面应用的美好体验。

文章总结

Electrobun v1:用TypeScript构建极速、轻量、跨平台的桌面应用

两年前,我暂停了co(lab)项目,着手打造一个理想中的桌面应用框架。如今稳定版v1正式发布,回顾这段历时两年的探索历程,我学习了Zig、C、C++和Objective-C等多种语言。

开发动机
我的编程启蒙始于2000年代初的Visual Basic 6桌面应用开发。后来Adobe AIR彻底改变了我的轨迹——我曾用它创建多个初创项目,为数以千计的用户提供桌面应用。那是我心中的黄金时代。然而经过二十余年创业历练,从独角兽企业的核心系统开发到创立自己的实验项目,我发现桌面开发体验反而退步了。在构建混合型应用co(lab)(整合了网页浏览器、代码编辑器和PTY终端)时,各种琐碎问题不断累积。

最初采用Electron构建的版本体验糟糕:代码签名、公证认证、分发和更新等环节都像是在与框架对抗。后来尝试Tauri,但Rust语言存在门槛;而Bun当时尚未发布1.0版本。这促使我决定自主开发。

跨平台演进
Electrobun最初仅支持macOS,如今已实现对macOS、Windows和Ubuntu三大平台的一键构建与分发。安装包、自动更新组件、差分补丁均可自动生成,只需配置静态资源托管(如R2/S3/GitHub Releases)即可完成部署。其中差分更新功能基于我移植优化的zig-bsdiff实现,通过SIMD和zstd技术提升性能。

随着Bun的FFI接口稳定,我逐步用其替代自研的Zig FFI层。架构优化后,Bun的共享内存机制使Electrobun在多进程运行时仍保持高效。

核心功能
当前版本提供完整的跨平台支持: - 基础功能:窗口控制、菜单、快捷键、剪贴板、对话框 - 增强特性:Webview分区、会话存储、页面内搜索 - 开发工具:完善的打包和更新体系

特别解决了Electron遗留的<webview>标签问题。通过构建更优OOPIF方案,<electrobun-webview>实现了真正的"超级iframe"——跨平台的DOM定位、进程隔离、无光标闪烁的图层渲染,且无需修改浏览器引擎。

未来规划
co(lab)已基于Electrobun全面重构,v1的稳定使其成为构建长期产品的可靠基础。社区正在蓬勃发展,Discord中涌现出许多创新应用。感谢所有参与测试、提交问题和反馈的贡献者,你们帮助塑造了Blackboard首个重要产品Electrobun。

评论总结

以下是评论内容的总结:

正面评价

  1. 开发效率高

    • 用户认为Electrobun是比Electron更高效、更轻量的替代方案,尤其适合TypeScript项目(评论1:"a more performant and lean alternative to Electron")
    • 游戏开发者发现其快速启动和即时重载特性非常适合开发(评论4:"how fast and seamless it is to run typescript games with instant auto reload")
  2. 跨平台潜力

    • 用户对其可能支持移动端开发表示期待(评论8:"it could also target mobile")
    • 有用户希望它能支持Android编译(评论10:"Can Electrobun compile to android as well")

质疑与担忧

  1. 性能与体积问题

    • 有用户质疑Bun本身130MB的体积是否真的轻量(评论7:"bun last time I checked alone is 130MB")
    • 用户希望看到与Electron的具体性能对比数据(评论12:"Are there any numbers on comparison to electron")
  2. 安全性与兼容性

    • 用户担心运行时加载网络代码的安全风险(评论5:"you probably shouldn't? Any additional gotchas due to the web view?")
    • 有用户指出系统原生WebView在不同平台的兼容性问题(评论9:"system web views just aren’t a great solution for a ui framework")

功能建议

  1. 文档与展示改进

    • 建议官网增加截图或视频演示(评论15:"could use a screenshot or two")
    • 用户指出当前文章标题未能清晰反映项目性质(评论13:"Title should maybe specify that this is a blogpost")
  2. 技术细节询问

    • 询问是否支持嵌入式Chromium渲染器(评论9:"Does electrobun support using an embedded chromium")
    • 关注Hello World程序的编译体积(评论17:"How big does a hello world binary compile to")

其他观点

  • 有用户将其与Emacs的集成开发环境类比(评论6:"This is what Emacs mostly gives me")
  • 用户分享从VSCode转向Rust-based Zed的体验,暗示对轻量方案的偏好(评论14:"uses much less memory")

(注:所有评论均无评分数据,故未标注认可度)