当前位置:首页 > 科技  > 软件

Rust 正在全面入侵前端

来源: 责编: 时间:2024-05-22 17:12:13 239观看
导读过年期间我没怎么发文章,但是我也没闲着。在这个空闲时间,把 rust 基础以及个别生态技术方案扎扎实实的,系统的学习了一下。学习他的初衷是因为 rust 可以支持鸿蒙应用的原生级别的开发,为进阶资深级别的鸿蒙开发者做技术

1sf28资讯网——每日最新资讯28at.com

过年期间我没怎么发文章,但是我也没闲着。在这个空闲时间,把 rust 基础以及个别生态技术方案扎扎实实的,系统的学习了一下。学习他的初衷是因为 rust 可以支持鸿蒙应用的原生级别的开发,为进阶资深级别的鸿蒙开发者做技术储备。1sf28资讯网——每日最新资讯28at.com

可这不学不知道,一学吓一跳。这才发现 rust 生态,正在以一种锐不可当的气势,全方位、无死角的入侵前端开发的方方面面。最关键的是,由于有后发优势,这些技术方案往往都比已有的前端方案更加先进、更加科学、性能更高...1sf28资讯网——每日最新资讯28at.com

一、Farm

1sf28资讯网——每日最新资讯28at.com

Farm 是一个使用 rust 编写的极速构建引擎。在它的宣传文档中,认为自己比 Webpack 快 10 倍以上,比 vite 快 5 倍。很显然,这是一款想要精准狙击 vite 的前端项目构建工具。1sf28资讯网——每日最新资讯28at.com

由于 vite 对于项目内的模块采取的是请求时编译的策略,并且对源码不 bundle,因此,根据字节架构团队内部的经验,当项目规模巨大的时候,vite 的首次页面加载时间可能长达数十秒「页面首次加载时,加载了大量的模块」,刷新时极其卡顿,并且由于巨大的请求量可能导致浏览器崩溃,影响开发体验。1sf28资讯网——每日最新资讯28at.com

而且 vite 在开发环境使用 esbuild 进行预编译,在生成环境使用 bundler rollup,处理方式不一样,偶尔可能会出现开发环境与线上行为不一致的情况,一旦出现不一致,则意味着巨大的排查成本。1sf28资讯网——每日最新资讯28at.com

针对 vite 的痛点,Farm 使用 rust 重新实现了对 css/ts/js/sass 的编译能力,能实现毫秒级启动项目,对于大部分情况,能讲 hmr 时间控制在 10ms 以内。1sf28资讯网——每日最新资讯28at.com

二、Turbopack

相比于 Farm,Turbopack 则显得更加和值得信赖,并且由于 next.js 的加持,它也得到了更多的关注。1sf28资讯网——每日最新资讯28at.com

1sf28资讯网——每日最新资讯28at.com

Turbopack 同样是一款基于 rust 构建的前端项目构建工具。Turbopack 建立在新的增量架构上,在打包时只关注开发所需的最小资源,因此不管是启动速度还是 hmr 速度,都有远超 vite 的性能。1sf28资讯网——每日最新资讯28at.com

在具有 3000 个模块的应用上,Turbopack 只需要 1.8s,而 Vite 需要 11.4s。1sf28资讯网——每日最新资讯28at.com

1sf28资讯网——每日最新资讯28at.com

Turbopack 是由 Vercel 团队提供的,专注于提高 Next.js 速度的打包工具。并且未来的目标是取代 webpack,成为新一代的前端打包工具。因此 Next.js 的成熟与大热,也会带动 Turbopack 成为更值得信赖的打包工具。1sf28资讯网——每日最新资讯28at.com

三、Rspack

Rspack 是一款由字节团队提供的项目打包工具。和 Turbopack 一样,它也充分发挥了 Rust 语言的性能优势,在打包速度上都有显著的提升。1sf28资讯网——每日最新资讯28at.com

但是与 Turbopack 不同的是,Rspack 选择了优先对 webpack 生态兼容的路线。一方面,这些兼容可能会带来一定的性能开销,但是在实际的业务落地中,这写性能开销是可以接受的。另外一方面,这些兼容也使得 Rspack 可以更好的与上层框架和生态进行集成,能够实现业务的渐进式迁移。1sf28资讯网——每日最新资讯28at.com

目前 Rspack 的开发团队也在积极的招聘,很显然,他们对于未来的发展有非常明确的规划。1sf28资讯网——每日最新资讯28at.com

1sf28资讯网——每日最新资讯28at.com

四、Vite 正在用 rust 重构

Vite 作为新一代高性能打包工具,刚出场时确实惊艳了众人。但是架不住各种疯狂的卷王使用 rust 弯道超车啊。Vite 反而成为了背景板,被按在地上疯狂摩擦。因此为了能够不在性能上被压制太多,Vite 团队正在基于 rust 研发各种替代方案以解决 Vite 目前的痛点。1sf28资讯网——每日最新资讯28at.com

五、Rolldown

Vite 团队正在研发 Rolldown 并且已经开源,它是使用 rust 开发的 Rollup 的替代品。它的重点将放在本地级别的性能上,同时保持与 Rollup 的兼容性。最终目标是能悄悄在 Vite 中切换到 Rolldown,并且 Vite 的使用者产生最小的影响。1sf28资讯网——每日最新资讯28at.com

不过目前来看,Vite 要实现 rust 重构这个目标压力很大。因此 Vite 团队规划了四个阶段来推动这个事情。1sf28资讯网——每日最新资讯28at.com

  • 替换 esbuild。
  • 替换 Rollup。
  • 使用 rust 实现常用需求的内置转化,如编译 ts、JSX 等。
  • 使用 rust 完全重构 Vite。

六、Leptos

Leptos 是一款基于 rust 的类 React/Solid 框架。也是基于 signal 实现的细粒度级别的响应式更新。1sf28资讯网——每日最新资讯28at.com

基础语法如下:1sf28资讯网——每日最新资讯28at.com

#[component]fn App() -> impl IntoView {  let (count, set_count) = create_signal(0);  view! {    <button       on:click=move |_| set_count.update(|n| *n += 1)    >      "click me"    </button>    <p>      <strong>"Reactive"</strong>      {count}    </p>  }}

在语法层面与 Solid 非常相似。不过在语法细节设计上,比 Solid 设计得更加的合理。在语义上有更符合直觉的思考。这也就意味着,Leptos 基于 rust 的编译做得更好。1sf28资讯网——每日最新资讯28at.com

#[component]fn ProgressBar(  #[prop(default = 100)]  max: u16,  #[prop(into)]  progress: Signal<i32>) -> impl IntoView {  view! {    <progress max=max value=progress />  }}

尽管 Leptos 设计得比较先进,性能也非常强悍,但由于是基于 rust 编写,上手成本非常高,因此在推广上可能会遇到大量的困境。不过这依然挡不住许多程序员对他的热情。1sf28资讯网——每日最新资讯28at.com

我也是非常喜欢 Leptos 的开发者之一,并且把它作为熟悉 rust 语法学习的主要项目之一,因为这是我们前端更熟悉的领域,因此前端开发通过它掌握 rust 能达到事半功倍的效果。1sf28资讯网——每日最新资讯28at.com

当然,该工具还有很多潜力我还没彻底挖掘到,比如官方文档里宣称自己是 full Stack 的框架,但是由于我还没有消化完,所以暂时需要进一步学习才能了解。1sf28资讯网——每日最新资讯28at.com

七、dioxus

1sf28资讯网——每日最新资讯28at.com

dioxus 是一个野心更大的跨平台客户端开发框架,与此同时,它又能做到全栈开发。它在实现原理与语法设计上与 Leptos 有一定的相似之处,但是在 UI 语法的表现上又完全不同。1sf28资讯网——每日最新资讯28at.com

一个简单的例子可以看出来。1sf28资讯网——每日最新资讯28at.com

fn app() -> Element {  let mut count = use_signal(|| 0);  rsx! {    h1 { "High-Five counter: {count}" }    button { onclick: move |_| count += 1, "Up high!" }    button { onclick: move |_| count -= 1, "Down low!" }  }}

从这个语法设计就可看出,它志在一统江湖。试图将 web 开发,移动端 App 开发,桌面端 App 开发等场景一网打尽。1sf28资讯网——每日最新资讯28at.com

1sf28资讯网——每日最新资讯28at.com

简单实用下来的感受就是,该框架有过渡模仿 React 的嫌疑,以致于熟悉 React 的我学习它比 Leptos 更加的得心应手。1sf28资讯网——每日最新资讯28at.com

八、Tauri

1sf28资讯网——每日最新资讯28at.com

Tauri 是一款 Electron 的替代方案。1sf28资讯网——每日最新资讯28at.com

Electron 主要有两个痛点,一是包体积太大,二是内存消耗严重。因此它的替代方案层出不穷。与前面介绍的几款 rust 框架不同,Tauri 的发展已经趋于成熟,并且已经在许多商用项目中得以应用。1sf28资讯网——每日最新资讯28at.com

最最最重要的是,我已经开始让我的学生学习它,并作为一个核心项目亮点作为自己的竞争力来应对越来越卷的面试场景。并且取得的效果还不错。从最近这半年的面试的结果来看,许多国内的公司已经开始重视 Tauri 带来的利好。1sf28资讯网——每日最新资讯28at.com

由于 rust 放弃了体积巨大的 Chromiun 和 nodejs,同样的项目,打包体积可以从 electron 的 60M减少到 4M,内存消耗也能从 500M 减少到 150M 左右。1sf28资讯网——每日最新资讯28at.com

九、Servo

1sf28资讯网——每日最新资讯28at.com

这是一款基于 rust 开发,并且志在取代 chrome 的浏览器项目。该项目是早期 Mozilla 开发的实验性项目,由于资金有限,中间搁置了很长一段时间,现在眼看着 rust 大火又准备加足马力开始搞,并且近期版本迭代非常快,此时的 Servo 已经由 Linux 基金会接管。1sf28资讯网——每日最新资讯28at.com

Servo 试图创造一个大规模并行计算的页面渲染模式,来加速渲染、布局、HTML 解析、图像解码等,在 Arm 架构上的测试显示,Servo 的性能显著优于 Chromium。1sf28资讯网——每日最新资讯28at.com

然后我就去下载这个浏览器来玩了一下,结果发现这玩意儿还是一个简陋版本。基本的 UI 功能还没有做出来。并且许多页面的布局还存在乱序的问题。1sf28资讯网——每日最新资讯28at.com

只能说暂时值得关注,有很大的发展潜力。用的话,可能还早。1sf28资讯网——每日最新资讯28at.com

十、Deno

Deno 是一款基于 rust 构建的 JavaScript 运行时。和 node.js 一样出自于同一个大佬之手。Deno 的最新版本也是基于 rust 开发。1sf28资讯网——每日最新资讯28at.com

对我个人而言,Deno 最大的魅力在于直接原生支持 TypeScript,并且支持了 JSX/TSX。所以我非常看好 Deno 的后续发展,它正在越来越好,虽然现在生态还不足以于 node 抗衡。1sf28资讯网——每日最新资讯28at.com

十一、总结

很明显可以看出,rust 正在入侵前端的方方面面,在有的方面虽不够成熟但已表现出潜力,在某些方面却已经确定了明确的优势。1sf28资讯网——每日最新资讯28at.com

我认为前端开发再也不能忽视 rust 的存在了。由于同时具备超高的性能于安全性,rust 在各个领域「操作系统层面、AI、游戏开发、服务端、跨端方案、高性能 web 应用...」都已经被高度认可,社区活跃度非常高,生态发展非常迅猛。1sf28资讯网——每日最新资讯28at.com

因此在去年年底到现在,我一直在投入 rust 的学习中,整体感受下来就是,从一个前端开发的角度切入去学习 rust,上手难度还是比较低的,大概花一天时间就能学完所有基础语法,但是需要我们对内存有非常准确的理解,如果你对内存一头雾水,可能 rust 会很难学习。1sf28资讯网——每日最新资讯28at.com

然后我们需要花更多的时间去学习 rust 的开发思维与生态,对于前端开发来说,Leptos 是一个不错的学习练手项目。1sf28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-90035-0.htmlRust 正在全面入侵前端

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 当调用一个 Python 对象时,背后都经历了哪些过程?

下一篇: 前端跨平台开发框架大盘点

标签:
  • 热门焦点
  • 印度登月最关键一步!月船三号今晚进入环月轨道

    8月5日消息,据印度官方消息,月船三号将于北京时间今晚21时30分左右开始近月制动进入环月轨道。这是该探测器能够成功的最关键步骤之一,如果成功将开始围
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 共享单车的故事讲到哪了?

    来源丨海克财经与共享充电宝相差不多,共享单车已很久没有被国内热点新闻关照到了。除了一再涨价和用户直呼用不起了。近日多家媒体再发报道称,成都、天津、郑州等地多个共享单
  • 消费结构调整丨巨头低价博弈,拼多多还卷得动吗?

    来源:征探财经作者:陈香羽随着流量红利的退潮,电商的存量博弈越来越明显。曾经主攻中高端与品质的淘宝天猫、京东重拾&ldquo;低价&rdquo;口号。而过去与他们错位竞争的拼多多,靠
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 信通院:小米、华为等11家应用商店基本完成APP签名及验签工作

    中国信通院表示,目前,小米、华为、OPPO、vivo、360手机助手、百度手机助手、应用宝、豌豆荚和努比亚等9家应用商店,以及抖音和快手2家新型应用分发平
Top