0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Rust是什么?有哪些特性

jf_wN0SrCdH 来源:浮之静 作者:lencx 2022-10-31 14:39 次阅读

Rust 是什么?

A language empowering everyone to build reliable and efficient software.

一种使每个人都能建立可靠和高效的软件的语言(系统级编程语言)。

特性

高性能:速度极快且内存效率极高,没有运行时或垃圾收集器,它可以为性能关键的服务提供动力,在嵌入式设备上运行,并容易与其他语言集成。

可靠性:丰富的类型系统和所有权模型保证了内存安全和线程安全(能够在编译时消除许多类错误)。

生产力:Rust 有很棒的文档、一个带有友好错误信息提示的编译器和一流的工具(一个集成的包管理器(cargo)和构建工具、具有自动完成和类型检查的智能多编辑器支持、一个自动格式化程序等等)。

Wiki: 在计算机科学中,垃圾回收(Garbage Collection,简称 GC)是指一种自动的存储器管理[8]机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法操作系统归还这部分内存空间。垃圾回收器可以减轻程序员的负担,也减少程序中的错误。垃圾回收最早起源于 LISP语言。JavaC#、Go和 D 语言都支持垃圾回收器。

生态

Command Line - 利用 Rust 强大的生态系统快速开发出 CLI 工具。Rust 可以帮助你可靠地维护应用程序,并轻松地发布它。

WebAssembly- 使用 Rust 来增强你的 JavaScript,每个 rust crate 都对应一个 js 模块,可以发布到 npm,用前端打包工具(webpack、vite、rollup等)进行捆绑。

Networking - 可预测的性能。小巧的资源占用。稳如磐石的可靠性。Rust是网络服务的最佳选择(构建高性能服务器)。

Embedded- 针对低资源的设备?需要低层次的控制而不放弃高层次的便利?Rust可以满足你的要求(嵌入式开发,内核开发等)。

Rust 助力前端

Rust 因其出色的表现,连续 7 年在 StackOverflow 调查中成为最受欢迎的语言(Stack Overflow Developer Survey 2022)。优秀的特性自然也受到了前端的青睐,很多大神开始基于 Rust 重写前端生态。

e6c12062-56da-11ed-a3b6-dac502259ad0.png

个人理解,不准确的地方欢迎讨论:Rust 之所以优秀是因为它借鉴了大量编程语言的优秀特性,通过其自身的类型系统,生命周期,所有权等概念将其统一起来,成为其安全可靠,高性能的重要保证(构建速度暂时不吐槽,毕竟团队也在不断努力提速中)。在编译阶段会对代码进行检查,抛出友好的错误,并给出大量指导性修改建议(很多时候都是编译器在教我写代码),这在别的语言似乎很难看到。

学习教程

Awesome Rust- Rust 代码和资源的精选列表

Rust语言圣经 (Rust Course)- 对标官方文档,对 Rust 语言进行全面且深入的讲解,辅以生动的示例和习题,语言诙谐幽默,值得一看

Rust语言中文社区 - 每天会发布大量和 Rust 生态相关的文章,适合碎片化时间浏览

Node.js ➤ Rust

24 days from node.js to Rust- 24 篇关于 Rust 入门的系列文章,用 Rust 重写常见的 JavaScript 任务(有大量对比示例代码)

Rust for Node developers- 为 Node.js 开发人员介绍 Rust 编程语言

Rust for JavaScript peeps - 了解 JS,想尝试 Rust,但不知道从哪里开始?这个给你!

...

生态

Turbo - Turbo 是用 Rust 编写的一个为 JavaScript 和 TypeScript 优化的增量捆绑器和构建系统(基于 SWC)

SWC (Speedy Web Compiler) - 是一个用 Rust 编写的超快速 TypeScript / JavaScript 编译器

Deno - JavaScript 和 TypeScript 的现代运行时

Rome- 是用于 JavaScript、TypeScript、JSON、HTML、Markdown 和 CSS 的格式化程序、linter、捆绑程序等,用 Rust 编写

Boa- 一个用 Rust 编写的实验性 Javascript 词法分析器、解析器和解释器。目前,它支持部分语言

Parcel- Web 的零配置构建工具

Lightning CSS - 一个非常快速的 CSS 解析器、转换器、捆绑器和压缩器

Lint

deno_lint - 用 Rust 编写的 JavaScript 和 TypeScript 的超快 linter

RSlint- 一个快速、可定制且易于使用的 JavaScript 和 TypeScript linter(处于早期开发阶段,不应在生产中使用)

nvm - Node.js 版本管理

fnm - 快速简单的 Node.js 版本管理器,基于 Rust

Volta- JS Toolchains as Code

wasm-pack- 将 Rust 生成 WebAssembly 的一站式工具(生成可发布的 npm 包)

rsw - wasm-pack 的增强版 CLI,支持同时 watch,build,link 多个 rust crate

vite-plugin-rsw- 基于 Vite 的 wasm-pack 插件(基于 rsw 实现)

Tauri - 构建跨平台桌面应用,目前支持 macOS,Windows,Linux,未来也会支持 iOS/iPadOS 和 Android。后端使用 Rust,前端使用 HTML,CSS 和 JS(为 Electro的替代品)

Tauri 系列 - 中文教程,从零到一搭建一个 Tauri 项目

Yew- 是一个现代 Rust 框架,用于使用 WebAssembly 创建多线程前端 Web 应用程序,以下是 Yew 的替代品:

Percy - 用于使用 Rust + WebAssembly 构建同构 Web 应用程序的模块化工具包

Seed - 用于创建 Web 应用程序的 Rust 框架

Perseus- 一个状态驱动的 Rust 网络开发框架,完全支持服务器端渲染和静态生成

Sycamore- 用于在 Rust 和 WebAssembly 中创建响应式 Web 应用程序的库

dprint-plugin-typescript[53] - TypeScript 和 JavaScript 代码格式化插件。

moon - 用 Rust 编写的用于 Web 生态系统的构建系统和 repo 管理工具

Rustle - 用 Rust 重写的 Svelte 编译器

typed-html - Type checked JSX for Rust

Rolldown - 100% API 兼容的 Rust 版 Rollup,实现正在进行中(似乎停止更新)

Relay- Relay 编译器使用 Rust 重写

...







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49123
  • CLI
    CLI
    +关注

    关注

    1

    文章

    79

    浏览量

    8543
  • rust语言
    +关注

    关注

    0

    文章

    57

    浏览量

    3009

原文标题:Rust 在前端

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    未来嵌入式系统的黄金搭档 MCX N947遇上Rust

    基于 Rust 的安全性和性能引入了 RustRust 很多优势,内存安全、并发安全、生态系统、包管理与构建管理,同时也有与 C/C++ 相同等级的性能。
    的头像 发表于 07-25 09:14 1351次阅读
    未来嵌入式系统的黄金搭档 MCX N947遇上<b class='flag-5'>Rust</b>

    Rust的 match 语句用法

    Rust 是一门现代化的系统编程语言,它拥有高性能、内存安全和并发性等特点。Rust 的语法设计非常优秀,其中 match 语句是一种非常强大的语言特性。match 语句可以让我们根据不同的匹配模式
    的头像 发表于 09-19 17:08 912次阅读

    使用rust开发stm32系列教程

    本文为使用 rust 开发 stm32 系列教程前言。Why RustRust 特性就不用多介绍了,个编译器管着有时候比用C到处浪把自己整没了好。ST官方逐渐停止对C固件库的更新,使用MX感觉没
    发表于 08-20 07:18

    怎样去使用Rust进行嵌入式编程呢

    使用Rust进行嵌入式编程Use Rust for embedded development篇首语:Rust的高性能、可靠性和生产力使其适合于嵌入式系统。在过去的几年里,Rust在程序
    发表于 12-22 07:20

    Rust代码中加载静态库时,出现错误 ` rust-lld: error: undefined symbol: malloc `怎么解决?

    “ [i]malloc ”、“ [i]exit ”。我验证了使用 ` [i]nm ` 命令。 问题是我打算使用 ffi 在 rust 中使用这个静态库。当我尝试在我的 Rust 代码中加载静态库
    发表于 06-09 08:44

    Rust 1.15 引入自定义derive特性什么做用

    Rust核心团队发布了Rust 1.15稳定版,新增了备受期待的自定义derive特性,让代码生成工具(如Serde和Diesel)能最大效能地工作。
    发表于 05-17 18:05 0次下载
    <b class='flag-5'>Rust</b> 1.15 引入自定义derive<b class='flag-5'>特性</b><b class='flag-5'>有</b>什么做用

    RUST的真实驱动案例

    我们无法确定RUST在内核的最终趋势,多少人愿意迁移,但是至少Linus愿意试水。 Wedson Almeida Filho针对ARM PL061 GPIO驱动,翻译了一个RUST版本,这样也算一
    的头像 发表于 10-12 15:59 2241次阅读
    <b class='flag-5'>RUST</b>的真实驱动案例

    rust-analyzer Rust编译器前端实现

    ./oschina_soft/rust-analyzer.zip
    发表于 05-19 09:23 2次下载
    <b class='flag-5'>rust</b>-analyzer <b class='flag-5'>Rust</b>编译器前端实现

    rust-av基于rust的多媒体工具包

    ./oschina_soft/rust-av.zip
    发表于 06-01 11:39 1次下载
    <b class='flag-5'>rust</b>-av基于<b class='flag-5'>rust</b>的多媒体工具包

    Rust中GAT和高阶类型

    Rust在类型系统级别上与Haskell,Scala许多相似之处。
    的头像 发表于 11-07 10:21 1175次阅读

    Chromium正式开始支持Rust

      Chromium 正式开始支持 Rust 目前的支持只是第一阶段,在C++代码中使用Rust写的第三方库(编译成.so)。估计明年Chromium的二进制发行文件中会包含rust写的库。更广
    的头像 发表于 01-14 10:04 976次阅读

    rust语言基础学习: Default trait

    Default trait 顾名思义是默认值,即Rust为特定类型实现 Default 特性时,可以为该类型赋予了可选的默认值。
    的头像 发表于 05-22 16:16 1282次阅读

    rust语言基础学习: rust中的错误处理

    错误是软件中不可避免的,所以 Rust 一些处理出错情况的特性。在许多情况下,Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。
    的头像 发表于 05-22 16:28 2122次阅读

    Rust的内部工作原理

    Rust到汇编:了解 Rust 的内部工作原理 非常好的Rust系列文章,通过生成的汇编代码,让你了解很多Rust内部的工作机制。例如文章
    的头像 发表于 06-14 10:34 793次阅读
    <b class='flag-5'>Rust</b>的内部工作原理

    从Rustup出发看Rust编译生态

    从Rustup出发看Rust编译生态 1. Rust和LLVM的关系是怎样的? 2. Rustup中targets是什么,为什么可以安装多个? 3. Rust在windows上为什么需要安装Visual studio?
    的头像 发表于 01-02 11:00 531次阅读