Rust是什么?有哪些特性

电子说

1.3w人已加入

描述

Rust 是什么?

A language empowering everyone to build reliable and efficient software.

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

特性

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

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

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

Wiki: 在计算机科学中,垃圾回收(Garbage Collection,简称 GC)是指一种自动的存储器管理[8]机制。当某个程序占用的一部分内存空间不再被这个程序访问时,这个程序会借助垃圾回收算法向操作系统归还这部分内存空间。垃圾回收器可以减轻程序员的负担,也减少程序中的错误。垃圾回收最早起源于 LISP语言。Java、C#、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 重写前端生态。

rust语言

个人理解,不准确的地方欢迎讨论: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 重写

...







审核编辑:刘清

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分