Rust
Tauri(一)——更适合 Web 开发人员的桌面应用开发解决方案 ✅
资讯动态 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 3169 次浏览 • 2024-10-28 13:44
背景
我们最近决定开发一个开源的桌面端应用程序(先卖个关子,会尽快推出,敬请期待!关注一下不迷路!),并选择了 Tauri 作为技术方案。可能只有少部分人了解过它,感兴趣的朋友们可以一起深入探讨!
Tauri 介绍
- 官方网站:https://tauri.app/ (v2.0)
- GitHub:https://github.com/tauri-apps/tauri (Star 84k)
官方介绍:创建小型、快速、安全、跨平台应用程序
通俗的理解
Tauri 是一个跨平台的桌面应用程序框架,它使程序员能够熟练的使用 Web 技术(例如:HTML、CSS、JS 以及流程的框架 Vue.js,Svelte,React,SolidJS,Angular,Preact 等),轻松的去创建桌面应用程序。
对于我们这些希望深入桌面应用程序开发的 Web 开发人员来说,Tauri 是一个非常适合的选择,而且不需要面对陡峭的学习曲线。如今,Web 技术已经成为最强大的 UI 技术之一,能够在多个支持 Web 浏览器的平台上无缝运行。使用 Tauri,我们可以完全按照在 Web 上设想的方式来设计 UI,这意味着可以继续使用熟悉的 Web 开发技能,打造出色且用户友好的界面。
在某些情况下,桌面应用程序的性能确实优于 Web 应用程序。选择桌面应用的一个关键原因是,Web 应用通常受限于浏览器内的本机 API,无法像桌面应用那样与操作系统深入交互。(例如,使用 Web 应用时,我们无法在后台访问文件系统或读取剪贴板数据。)而桌面应用则能更好地访问本机 API,甚至可以通过比 JavaScript 更高效的语言来实现性能的提升(例如:Rust)。因此,如果一个桌面框架既能利用灵活的 UI 和庞大的 Web 生态系统,又能提供对本机 API 的全面访问(Web + Native APIs),那将是一个完美的选择。
Tauri 结合了两个主要生态系统,并提供了对本机 API 的访问,让开发体验更加完善。
Tauri 的架构由两个核心组件构成:
- 是基于 Web 构建的前端
- 是使用 Rust 编程语言开发的后端,称为 Tauri Core。
前端允许我们使用自己擅长的 Web 技术(如 React 和 Vue)创建灵活且富有视觉吸引力的 UI,而 Rust 后端通过进程间通信打开了通向本机 API 的大门。(比如,能够访问剪贴板或进行文件系统操作。)借助 Rust 的高性能,即使在处理计算密集型任务时,我们的应用程序也能高效、平稳地运行。
这就是为什么我们认为 Tauri 是在 Web 技术基础上构建跨平台桌面应用程序的理想选择(技术选型)。
VS Electron
Electron 简介
- Electron 官网:https://www.electronjs.org/ (v33.0)
- GitHub:https://github.com/electron/electron (Star 114k)
在此,我们必须提到 Electron,它可能是当今最流行的跨平台框架。从其版本的迭代,Star 的数量都不难看出。Electron 已经凭借成为众多知名应用程序的基础证明了自己的价值。如上图, 进入该网址 https://www.electronjs.org/apps 可以看到广泛的案例,每一个使用的应用都证明了 Electron 的强大功能和受欢迎程度。开发社区也对 Electron 所取得的成就给予了高度认可。
不过,在讨论任何技术细节之前,我觉得有必要对比一下 Electron 和其他框架,帮助我们更好地判断哪个框架最适合我们的需求,并做出明智的选择。
State of JavaScript 用户数据对比
对比这个事,肯定不能听一家之言,所以还是看看更多的数据,那就先看看 State of JavaScript 调查统计结果。分别从使用度、认知度、关注度、保留度、积极性等方面做了调查统计。
统计数据地址:https://2023.stateofjs.com/zh-Hans/libraries/mobile_desktop/
-
使用度
-
认知度
-
关注度
-
保留度
- 积极性
技术对比
对于技术方向对比,我也是刚开始接触,具体也不清楚,也给不出太多的建议,但是网上依然有很多人给出了对比结果,我们一起来看看。
下面是 ElectronJS 和 Tauri 的对比表格,从多个维度展示它们的差异:
特性 | ElectronJS | Tauri |
---|---|---|
框架体积 | 应用体积较大,通常超过 100MB | 应用体积小得多,通常小于 10MB |
内存占用 | 内存占用较高,通常每个应用实例需要较多的内存资源 | 内存占用较低,使用更少的资源 |
技术栈 | 基于 Chromium 和 Node.js(打包整个浏览器运行时) | 基于 WebView 和 Rust(无需打包整个浏览器) |
性能 | 由于打包整个 Chromium,性能会较低 | 使用原生系统的 WebView 组件,性能更高 |
API 访问 | 通过 Node.js 可以访问部分系统 API | 提供 Rust 后端,能轻松访问操作系统的原生 API |
安全性 | 必须小心处理 Node.js 和 Web 内容的通信,防止安全漏洞 | 默认更安全,Tauri 采用了严格的安全模式 |
打包和发布 | 需要配置 electron-builder 或 electron-forge 来打包 | 内置应用打包工具(如 AppImage、DMG、EXE),无需外部依赖 |
支持的语言 | JavaScript、TypeScript | JavaScript、TypeScript(前端)和 Rust(后端) |
生态系统 | 丰富的社区和插件生态,许多现成的模板和工具 | 社区正在发展,官方模板更稳定可靠 |
开发者体验 | 强大的文档和社区支持,易于上手,广泛使用 | 更轻量的解决方案,文档较完善,Rust 语言的学习曲线稍高 |
跨平台支持 | 支持 Windows、macOS、Linux | 支持 Windows、macOS、Linux,且更容易优化体积和性能 |
调试工具 | 支持 Chrome DevTools,开发和调试非常便捷 | 支持 DevTools,前端调试体验类似,但后端需要 Rust 的调试工具 |
更新机制 | 需要手动配置更新机制,如使用 electron-updater | 内置自动更新功能,官方支持简化更新流程 |
项目初始化 | - 需要手动创建 npm 项目,安装 Electron 库。 | - 提供内置 CLI 工具,快速生成项目。 |
- 从头开始,使用 JavaScript/HTML 手动配置项目结构。 | - 使用官方模板自动配置项目结构,减少手动设置。 | |
官方模板支持 | - 缺少官方模板,通常依赖社区维护的 boilerplates。 | - 提供多种官方模板,支持 React、Vue、Svelte 等前端框架。 |
主要区别总结:
- 复杂性:Tauri 内置工具、官方模板、简化配置文件;Electron 需要安装更多的工具和依赖,官方模板少,需要花更多时间进行初期设置。
- 体积与性能:Tauri 应用更轻量、性能更好,非常适合对资源占用敏感的场景;Electron 则相对较重,但生态和成熟度更高。
- 系统 API 访问:Tauri 能够更直接访问操作系统原生 API,适合需要本机功能的应用;Electron 依赖 Node.js,需要额外配置访问系统资源。
- 打包与发布:Tauri 的打包更简洁高效,尤其在生成轻量应用上有明显优势。
对比内容参考链接:
- Tauri VS. Electron - Real world application
- Electron vs Tauri: 予想外の結果が!
- Tauri vs. Electron: A Technical Comparison
- ElectronJS vs Tauri
- Tauri vs. Electron: A New Dawn in Desktop App Development
小结
随着 Web 技术的飞速发展,开发人员在构建桌面应用时不再局限于传统的本地编程语言。Tauri 作为一款轻量级、跨平台的桌面应用开发框架,完美结合了 Web 开发的灵活性与桌面应用的强大性能。它为那些熟悉前端技术的开发者打开了通往桌面开发的大门,而不需要面对陡峭的学习曲线。在这篇文章中,我们探讨了为什么 Tauri 是 Web 开发人员的理想选择,它不仅能够利用现有的 Web 技能,还能实现对本地 API 的无缝访问,让开发者更轻松地构建出色的桌面应用。
后续进行实战上手,敬请期待!
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
🔥 Rust China Conf 2024 震撼来袭,INFINI Pizza 搜索引擎重磅亮相!
活动 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 3822 次浏览 • 2024-08-31 17:10
随着 Rust 语言以其在性能、安全性和并发性方面的卓越表现,赢得了全球开发者的青睐,Rust 社区正迎来前所未有的发展机遇。在这个充满活力与潜力的背景下,Rust China Conf 2024 震撼来袭!
Rust 大会介绍
Rust 大会即将于 9 月 7 日 - 8 日在上海盛大举办。作为年度国内规模最大并唯一的 Rust 线下大型会议,它由 Rust 中文社区发起主办、知名企业和开源组织联合协办,深受开发者与相关企业的喜爱与推崇。自 2020 年起,已连续举办四年,今年预计将吸引超过 400 名一线程序员和企业用户,他们已在个人或公司项目中实践 Rust,期待在此交流心得、共享经验,共同推动 Rust 生态的繁荣与发展。
INFINI Labs 亮相 Rust 大会
作为本次大会的重要赞助商之一,INFINI Labs 将携手蚂蚁集团、字节跳动、JetBrains、亚马逊云科技、华为、Greptime 等知名企业,为与会者带来创新的灵感和实践的洞见。INFINI Labs 的创始人 & CEO 曾勇先生将分享《基于 Rust 编写下一代实时搜索引擎》—— INFINI Pizza 的故事,这款搜索引擎旨在解决海量数据的实时搜索需求,释放现代硬件的潜力,为企业打造高效、准确的搜索解决方案。
大会部分议题亮点抢先看
《人人可用的 Rust》
讲师简介: Rebecca Rumbul,Rust 基金会执行董事兼首席执行官, OpenUK 董事会成员, OpenSSF 管理委员会成员。
议题介绍: 本次分享将介绍 Rust 基金会如何投资于工程和推广工作,以确保 Rust 对所有人来说都是有用、高效且安全的。
《携手共建繁荣的 Rust OS 内核软件生态》
讲师简介: 田洪亮,田洪亮博士是蚂蚁研究院操作系统方向的负责人, 在 Rust 编程和内核开发方面有丰富的经验,荣获 OS2ATC'24 颁发的开源创新先锋奖。他发起的 Occlum 项目,是业界最早的 Rust OS 开源项目, 已发展成可信执行环境中最流行的 library OS,荣登中科协发布的"科创中国"开源创新榜单。曾就职于 Intel Labs China,博士毕业于清华大学。
议题介绍: Rust 语言以其高效、安全和生产力被视为系统编程,尤其是 OS 编程的未来。但在开发 OS 内核时,存在频繁使用 unsafe、缺乏 Cargo 支持、以及可重用的 no_std crates 不足等痛点。星绽开源社区提出了星绽 Framework 和星绽 OSDK,提供强大的 safe API 和开发工具链, 使得 Rust 内核开发更加安全、高效,并促进了 no_std crates 的复用与组合,旨在提升开发者生产力并推动 Rust 生态的繁荣。
《用 Rust 构建高性能的生成式 AI 应用》
讲师简介: 王宇博,现任亚马逊云科技大中华区开发者关系总监、首席布道师,致力于新一代信息技术与创新在开发者中的布道推广,以及开发者生态体系的建设。
议题介绍: 生成式 AI 技术在自然语言处理和图像生成领域快速发展。对于 Rust 开发者来说,利用 Rust 的高性能特性构建高效、可靠的生成式 AI 应用至关重要。本次演讲将深入探讨在 Rust 中开发生成式 AI 应用的实践方法,分析其在数值计算和并发编程中的优势,并分享确保应用可靠性和安全性的最佳实践,帮助开发者掌握构建高性能生成式 AI 应用的技巧。
《字节跳动在 Rust 服务端方向的实践与思考》
讲师简介: 吴迪,字节跳动服务框架 Rust 负责人,负责字节跳动 Rust 生态建设与推广落地。
议题介绍: 字节跳动三年前开始投资 Rust 服务端开发,构建了内部生态并开源核心框架 Volo。现在已在多个业务线成功落地,规模国内最大,收益超预期。本次分享将介绍选择 Rust 的原因、落地心得及未来技术趋势的思考。
《Async Rust 维测&定位的探索和思考》
讲师简介:
陈明煜:毕业于加州大学圣地亚哥分校,现就职于华为,OpenHarmony Ylong Rust 异步框架的开发者,致力于推动 OH 应用的 Rust 异步化。
楼智豪:毕业于浙江大学,现就职于华为,参与过 Rust 与 Cangjie 语言的开源贡献,现从事 Rust 在 OpenHarmony 中的应用。
议题介绍: 本议题将介绍我们在 OpenHarmony 中遇到的一些异步框架使用问题,以及我们在 Rust 异步调测与定位方面的探索。内容包括对业界常见异步框架的维测能力调研,以及对 Rust 无栈协程的推栈处理和跨 FFI 的 C++ exception 问题解决方法,旨在提升 Rust 异步的可商用性。
《Rust HashMap:比看起来更复杂》
讲师简介: 曹瑞秋,蚂蚁集团高级开发工程师,Apache HoraeDB/CeresDB 核心开发者,Apache HoraeDB PPMC member,长期专注于时序数据库领域。
议题介绍: Rust HashMap 看似简单,实际使用中存在诸多"坑点",尤其在 CPU 消耗和内存占用方面。分段 HashMap 设计中的伪共享和内存访问局部性差会影响性能。HashMap 的 capacity 通常远大于指定值,加之内存访问特性,会占据大量物理内存。此外,with_capacity
方法和 allocator 内存池的使用不当可能导致内存释放问题。因此,使用 Rust HashMap 需要细心设计。
《Rust 和 C++ 互操作及交叉编译》
讲师简介: 朱树磊,北京大学物理学士,德国 TUM 硕士,现任浙江大华技术股份有限公司高级算法专家。从事人工智能算法研发工作 10 余年,擅长机器学习、深度学习和大数据智能等技术领域,具备丰富的人工智能算法系统设计和开发经验。
议题介绍: Rust 和 C++ 经常需要共存,但 C++ 的交叉编译复杂性是一个挑战。本次分享将介绍如何使用 cxx 让 Rust 和 C++ 代码共存,并通过 LLVM 工具链补齐 C++ 交叉编译的短板,让 C++ 和 Rust 的互操作简单可移植。
《超大规模:抖音直播的 Rust 技术落地实践》
讲师简介: 赵鹏,抖音直播架构师,Rust 技术负责人。
议题介绍: 抖音直播从 2022 年开始引入 Rust 技术栈,用于应对直播业务中的超低延时、超高性能挑战,取得了远超预期巨大的收益。两年时间里我们有 20+ 个头部服务完成了 Rust 重构,吞吐平均提升超 100%,节省了 16w 核 CPU 资源,多个服务 SLA 提升至 6 个 9,目前我们的 Rust 服务在线上承担着超 4000w qps 的请求。Rust 技术在抖音直播研发团队二级部门实现了 100% 覆盖,每个子业务团队都有 Rust 服务在线上运行。我们还成立了专门的 Rust 技术组帮助解决业务公共问题,沉淀了完整的 Rust 研发流水线,基本实现了 Rust 新人两周即可上手开发,两个月完成一个 Rust 服务上线的速度。综合 Rust 服务类型覆盖、数量、资源占用、开发人员、生态、基建完善程度,抖音直播已经是国内规模最大的 Rust 技术生产环境落地团队,本次分享将给大家介绍我们从选型、验证、落地、推广到维护过程中的真实实践经验,希望能够帮助到其他同行朋友。
大会报名
本次大会致力于成为中国 Rustaceans 面对面交流的盛宴,为国内的 Rust 开发者和企业提供一次充分的成果展示、技术分享、能力提升、行业资讯交流、企业人才储备建设的机会。欢迎购票参与现场交流。
🔗 报名链接 / 扫二维码:
https://4292817522623.huodongxing.com/event/5757822319111
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5826 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5826 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。
Tauri(一)——更适合 Web 开发人员的桌面应用开发解决方案 ✅
资讯动态 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 3169 次浏览 • 2024-10-28 13:44
背景
我们最近决定开发一个开源的桌面端应用程序(先卖个关子,会尽快推出,敬请期待!关注一下不迷路!),并选择了 Tauri 作为技术方案。可能只有少部分人了解过它,感兴趣的朋友们可以一起深入探讨!
Tauri 介绍
- 官方网站:https://tauri.app/ (v2.0)
- GitHub:https://github.com/tauri-apps/tauri (Star 84k)
官方介绍:创建小型、快速、安全、跨平台应用程序
通俗的理解
Tauri 是一个跨平台的桌面应用程序框架,它使程序员能够熟练的使用 Web 技术(例如:HTML、CSS、JS 以及流程的框架 Vue.js,Svelte,React,SolidJS,Angular,Preact 等),轻松的去创建桌面应用程序。
对于我们这些希望深入桌面应用程序开发的 Web 开发人员来说,Tauri 是一个非常适合的选择,而且不需要面对陡峭的学习曲线。如今,Web 技术已经成为最强大的 UI 技术之一,能够在多个支持 Web 浏览器的平台上无缝运行。使用 Tauri,我们可以完全按照在 Web 上设想的方式来设计 UI,这意味着可以继续使用熟悉的 Web 开发技能,打造出色且用户友好的界面。
在某些情况下,桌面应用程序的性能确实优于 Web 应用程序。选择桌面应用的一个关键原因是,Web 应用通常受限于浏览器内的本机 API,无法像桌面应用那样与操作系统深入交互。(例如,使用 Web 应用时,我们无法在后台访问文件系统或读取剪贴板数据。)而桌面应用则能更好地访问本机 API,甚至可以通过比 JavaScript 更高效的语言来实现性能的提升(例如:Rust)。因此,如果一个桌面框架既能利用灵活的 UI 和庞大的 Web 生态系统,又能提供对本机 API 的全面访问(Web + Native APIs),那将是一个完美的选择。
Tauri 结合了两个主要生态系统,并提供了对本机 API 的访问,让开发体验更加完善。
Tauri 的架构由两个核心组件构成:
- 是基于 Web 构建的前端
- 是使用 Rust 编程语言开发的后端,称为 Tauri Core。
前端允许我们使用自己擅长的 Web 技术(如 React 和 Vue)创建灵活且富有视觉吸引力的 UI,而 Rust 后端通过进程间通信打开了通向本机 API 的大门。(比如,能够访问剪贴板或进行文件系统操作。)借助 Rust 的高性能,即使在处理计算密集型任务时,我们的应用程序也能高效、平稳地运行。
这就是为什么我们认为 Tauri 是在 Web 技术基础上构建跨平台桌面应用程序的理想选择(技术选型)。
VS Electron
Electron 简介
- Electron 官网:https://www.electronjs.org/ (v33.0)
- GitHub:https://github.com/electron/electron (Star 114k)
在此,我们必须提到 Electron,它可能是当今最流行的跨平台框架。从其版本的迭代,Star 的数量都不难看出。Electron 已经凭借成为众多知名应用程序的基础证明了自己的价值。如上图, 进入该网址 https://www.electronjs.org/apps 可以看到广泛的案例,每一个使用的应用都证明了 Electron 的强大功能和受欢迎程度。开发社区也对 Electron 所取得的成就给予了高度认可。
不过,在讨论任何技术细节之前,我觉得有必要对比一下 Electron 和其他框架,帮助我们更好地判断哪个框架最适合我们的需求,并做出明智的选择。
State of JavaScript 用户数据对比
对比这个事,肯定不能听一家之言,所以还是看看更多的数据,那就先看看 State of JavaScript 调查统计结果。分别从使用度、认知度、关注度、保留度、积极性等方面做了调查统计。
统计数据地址:https://2023.stateofjs.com/zh-Hans/libraries/mobile_desktop/
-
使用度
-
认知度
-
关注度
-
保留度
- 积极性
技术对比
对于技术方向对比,我也是刚开始接触,具体也不清楚,也给不出太多的建议,但是网上依然有很多人给出了对比结果,我们一起来看看。
下面是 ElectronJS 和 Tauri 的对比表格,从多个维度展示它们的差异:
特性 | ElectronJS | Tauri |
---|---|---|
框架体积 | 应用体积较大,通常超过 100MB | 应用体积小得多,通常小于 10MB |
内存占用 | 内存占用较高,通常每个应用实例需要较多的内存资源 | 内存占用较低,使用更少的资源 |
技术栈 | 基于 Chromium 和 Node.js(打包整个浏览器运行时) | 基于 WebView 和 Rust(无需打包整个浏览器) |
性能 | 由于打包整个 Chromium,性能会较低 | 使用原生系统的 WebView 组件,性能更高 |
API 访问 | 通过 Node.js 可以访问部分系统 API | 提供 Rust 后端,能轻松访问操作系统的原生 API |
安全性 | 必须小心处理 Node.js 和 Web 内容的通信,防止安全漏洞 | 默认更安全,Tauri 采用了严格的安全模式 |
打包和发布 | 需要配置 electron-builder 或 electron-forge 来打包 | 内置应用打包工具(如 AppImage、DMG、EXE),无需外部依赖 |
支持的语言 | JavaScript、TypeScript | JavaScript、TypeScript(前端)和 Rust(后端) |
生态系统 | 丰富的社区和插件生态,许多现成的模板和工具 | 社区正在发展,官方模板更稳定可靠 |
开发者体验 | 强大的文档和社区支持,易于上手,广泛使用 | 更轻量的解决方案,文档较完善,Rust 语言的学习曲线稍高 |
跨平台支持 | 支持 Windows、macOS、Linux | 支持 Windows、macOS、Linux,且更容易优化体积和性能 |
调试工具 | 支持 Chrome DevTools,开发和调试非常便捷 | 支持 DevTools,前端调试体验类似,但后端需要 Rust 的调试工具 |
更新机制 | 需要手动配置更新机制,如使用 electron-updater | 内置自动更新功能,官方支持简化更新流程 |
项目初始化 | - 需要手动创建 npm 项目,安装 Electron 库。 | - 提供内置 CLI 工具,快速生成项目。 |
- 从头开始,使用 JavaScript/HTML 手动配置项目结构。 | - 使用官方模板自动配置项目结构,减少手动设置。 | |
官方模板支持 | - 缺少官方模板,通常依赖社区维护的 boilerplates。 | - 提供多种官方模板,支持 React、Vue、Svelte 等前端框架。 |
主要区别总结:
- 复杂性:Tauri 内置工具、官方模板、简化配置文件;Electron 需要安装更多的工具和依赖,官方模板少,需要花更多时间进行初期设置。
- 体积与性能:Tauri 应用更轻量、性能更好,非常适合对资源占用敏感的场景;Electron 则相对较重,但生态和成熟度更高。
- 系统 API 访问:Tauri 能够更直接访问操作系统原生 API,适合需要本机功能的应用;Electron 依赖 Node.js,需要额外配置访问系统资源。
- 打包与发布:Tauri 的打包更简洁高效,尤其在生成轻量应用上有明显优势。
对比内容参考链接:
- Tauri VS. Electron - Real world application
- Electron vs Tauri: 予想外の結果が!
- Tauri vs. Electron: A Technical Comparison
- ElectronJS vs Tauri
- Tauri vs. Electron: A New Dawn in Desktop App Development
小结
随着 Web 技术的飞速发展,开发人员在构建桌面应用时不再局限于传统的本地编程语言。Tauri 作为一款轻量级、跨平台的桌面应用开发框架,完美结合了 Web 开发的灵活性与桌面应用的强大性能。它为那些熟悉前端技术的开发者打开了通往桌面开发的大门,而不需要面对陡峭的学习曲线。在这篇文章中,我们探讨了为什么 Tauri 是 Web 开发人员的理想选择,它不仅能够利用现有的 Web 技能,还能实现对本地 API 的无缝访问,让开发者更轻松地构建出色的桌面应用。
后续进行实战上手,敬请期待!
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
🔥 Rust China Conf 2024 震撼来袭,INFINI Pizza 搜索引擎重磅亮相!
活动 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 3822 次浏览 • 2024-08-31 17:10
随着 Rust 语言以其在性能、安全性和并发性方面的卓越表现,赢得了全球开发者的青睐,Rust 社区正迎来前所未有的发展机遇。在这个充满活力与潜力的背景下,Rust China Conf 2024 震撼来袭!
Rust 大会介绍
Rust 大会即将于 9 月 7 日 - 8 日在上海盛大举办。作为年度国内规模最大并唯一的 Rust 线下大型会议,它由 Rust 中文社区发起主办、知名企业和开源组织联合协办,深受开发者与相关企业的喜爱与推崇。自 2020 年起,已连续举办四年,今年预计将吸引超过 400 名一线程序员和企业用户,他们已在个人或公司项目中实践 Rust,期待在此交流心得、共享经验,共同推动 Rust 生态的繁荣与发展。
INFINI Labs 亮相 Rust 大会
作为本次大会的重要赞助商之一,INFINI Labs 将携手蚂蚁集团、字节跳动、JetBrains、亚马逊云科技、华为、Greptime 等知名企业,为与会者带来创新的灵感和实践的洞见。INFINI Labs 的创始人 & CEO 曾勇先生将分享《基于 Rust 编写下一代实时搜索引擎》—— INFINI Pizza 的故事,这款搜索引擎旨在解决海量数据的实时搜索需求,释放现代硬件的潜力,为企业打造高效、准确的搜索解决方案。
大会部分议题亮点抢先看
《人人可用的 Rust》
讲师简介: Rebecca Rumbul,Rust 基金会执行董事兼首席执行官, OpenUK 董事会成员, OpenSSF 管理委员会成员。
议题介绍: 本次分享将介绍 Rust 基金会如何投资于工程和推广工作,以确保 Rust 对所有人来说都是有用、高效且安全的。
《携手共建繁荣的 Rust OS 内核软件生态》
讲师简介: 田洪亮,田洪亮博士是蚂蚁研究院操作系统方向的负责人, 在 Rust 编程和内核开发方面有丰富的经验,荣获 OS2ATC'24 颁发的开源创新先锋奖。他发起的 Occlum 项目,是业界最早的 Rust OS 开源项目, 已发展成可信执行环境中最流行的 library OS,荣登中科协发布的"科创中国"开源创新榜单。曾就职于 Intel Labs China,博士毕业于清华大学。
议题介绍: Rust 语言以其高效、安全和生产力被视为系统编程,尤其是 OS 编程的未来。但在开发 OS 内核时,存在频繁使用 unsafe、缺乏 Cargo 支持、以及可重用的 no_std crates 不足等痛点。星绽开源社区提出了星绽 Framework 和星绽 OSDK,提供强大的 safe API 和开发工具链, 使得 Rust 内核开发更加安全、高效,并促进了 no_std crates 的复用与组合,旨在提升开发者生产力并推动 Rust 生态的繁荣。
《用 Rust 构建高性能的生成式 AI 应用》
讲师简介: 王宇博,现任亚马逊云科技大中华区开发者关系总监、首席布道师,致力于新一代信息技术与创新在开发者中的布道推广,以及开发者生态体系的建设。
议题介绍: 生成式 AI 技术在自然语言处理和图像生成领域快速发展。对于 Rust 开发者来说,利用 Rust 的高性能特性构建高效、可靠的生成式 AI 应用至关重要。本次演讲将深入探讨在 Rust 中开发生成式 AI 应用的实践方法,分析其在数值计算和并发编程中的优势,并分享确保应用可靠性和安全性的最佳实践,帮助开发者掌握构建高性能生成式 AI 应用的技巧。
《字节跳动在 Rust 服务端方向的实践与思考》
讲师简介: 吴迪,字节跳动服务框架 Rust 负责人,负责字节跳动 Rust 生态建设与推广落地。
议题介绍: 字节跳动三年前开始投资 Rust 服务端开发,构建了内部生态并开源核心框架 Volo。现在已在多个业务线成功落地,规模国内最大,收益超预期。本次分享将介绍选择 Rust 的原因、落地心得及未来技术趋势的思考。
《Async Rust 维测&定位的探索和思考》
讲师简介:
陈明煜:毕业于加州大学圣地亚哥分校,现就职于华为,OpenHarmony Ylong Rust 异步框架的开发者,致力于推动 OH 应用的 Rust 异步化。
楼智豪:毕业于浙江大学,现就职于华为,参与过 Rust 与 Cangjie 语言的开源贡献,现从事 Rust 在 OpenHarmony 中的应用。
议题介绍: 本议题将介绍我们在 OpenHarmony 中遇到的一些异步框架使用问题,以及我们在 Rust 异步调测与定位方面的探索。内容包括对业界常见异步框架的维测能力调研,以及对 Rust 无栈协程的推栈处理和跨 FFI 的 C++ exception 问题解决方法,旨在提升 Rust 异步的可商用性。
《Rust HashMap:比看起来更复杂》
讲师简介: 曹瑞秋,蚂蚁集团高级开发工程师,Apache HoraeDB/CeresDB 核心开发者,Apache HoraeDB PPMC member,长期专注于时序数据库领域。
议题介绍: Rust HashMap 看似简单,实际使用中存在诸多"坑点",尤其在 CPU 消耗和内存占用方面。分段 HashMap 设计中的伪共享和内存访问局部性差会影响性能。HashMap 的 capacity 通常远大于指定值,加之内存访问特性,会占据大量物理内存。此外,with_capacity
方法和 allocator 内存池的使用不当可能导致内存释放问题。因此,使用 Rust HashMap 需要细心设计。
《Rust 和 C++ 互操作及交叉编译》
讲师简介: 朱树磊,北京大学物理学士,德国 TUM 硕士,现任浙江大华技术股份有限公司高级算法专家。从事人工智能算法研发工作 10 余年,擅长机器学习、深度学习和大数据智能等技术领域,具备丰富的人工智能算法系统设计和开发经验。
议题介绍: Rust 和 C++ 经常需要共存,但 C++ 的交叉编译复杂性是一个挑战。本次分享将介绍如何使用 cxx 让 Rust 和 C++ 代码共存,并通过 LLVM 工具链补齐 C++ 交叉编译的短板,让 C++ 和 Rust 的互操作简单可移植。
《超大规模:抖音直播的 Rust 技术落地实践》
讲师简介: 赵鹏,抖音直播架构师,Rust 技术负责人。
议题介绍: 抖音直播从 2022 年开始引入 Rust 技术栈,用于应对直播业务中的超低延时、超高性能挑战,取得了远超预期巨大的收益。两年时间里我们有 20+ 个头部服务完成了 Rust 重构,吞吐平均提升超 100%,节省了 16w 核 CPU 资源,多个服务 SLA 提升至 6 个 9,目前我们的 Rust 服务在线上承担着超 4000w qps 的请求。Rust 技术在抖音直播研发团队二级部门实现了 100% 覆盖,每个子业务团队都有 Rust 服务在线上运行。我们还成立了专门的 Rust 技术组帮助解决业务公共问题,沉淀了完整的 Rust 研发流水线,基本实现了 Rust 新人两周即可上手开发,两个月完成一个 Rust 服务上线的速度。综合 Rust 服务类型覆盖、数量、资源占用、开发人员、生态、基建完善程度,抖音直播已经是国内规模最大的 Rust 技术生产环境落地团队,本次分享将给大家介绍我们从选型、验证、落地、推广到维护过程中的真实实践经验,希望能够帮助到其他同行朋友。
大会报名
本次大会致力于成为中国 Rustaceans 面对面交流的盛宴,为国内的 Rust 开发者和企业提供一次充分的成果展示、技术分享、能力提升、行业资讯交流、企业人才储备建设的机会。欢迎购票参与现场交流。
🔗 报名链接 / 扫二维码:
https://4292817522623.huodongxing.com/event/5757822319111
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
招聘搜索引擎内核研发工程师(Rust方向)
求职招聘 • medcl 发表了文章 • 0 个评论 • 5826 次浏览 • 2023-01-28 17:33
- 设计并开发下一代实时搜索引擎 ;
- 持续优化实现方案,改进组件性能 ;
- 保证工程质量和开发效率 。
- 3 年以上搜索引擎开发经验,计算机相关专业,本科及以上学历 ;
- 熟练掌握 Rust/C/C++/Golang 中的一种或多种语言,有 Rust 实际开发经验者优先 ;
- 熟悉 Linux 操作系统,了解Linux系统常用操作命令, 能基于shell编写脚本 ;
- 熟悉 Linux 下内存管理机制,低延迟、高并发无锁化编程 ;
- 熟悉 TCP/IP、Socket、HTTP 等网络协议 ;
- 具有良好的沟通、团队协作能力;
- 熟悉常见分布式算法,有大规模分布式系统开发经验优先;
- 较好的英文阅读和写作能力,具备比较强的逻辑思维能力;
- 良好的编码习惯和技术文档能力,具备持续输出的能力;
- 工作地点不限 。
- 有自己的博客、Github、开源项目优先 ;
- 具有相关搜索引擎开发工作经验者优先 ;
- 熟悉各类索引结构;
- 熟悉 LSM-Tree、B+Tree、RocksDB、LevelDB 优先 ;
- 有较强的学习能力,愿意致力于新技术的研究 。