0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Rust是什么?有哪些特性

jf_wN0SrCdH ? 來源:浮之靜 ? 作者:lencx ? 2022-10-31 14:39 ? 次閱讀

Rust 是什么?

A language empowering everyone to build reliable and efficient software.

一種使每個人都能建立可靠和高效的軟件的語言(系統(tǒng)級編程語言)。

特性

高性能:速度極快且內存效率極高,沒有運行時或垃圾收集器,它可以為性能關鍵的服務提供動力,在嵌入式設備上運行,并容易與其他語言集成。

可靠性:豐富的類型系統(tǒng)和所有權模型保證了內存安全和線程安全(能夠在編譯時消除許多類錯誤)。

生產(chǎn)力:Rust 有很棒的文檔、一個帶有友好錯誤信息提示的編譯器和一流的工具(一個集成的包管理器(cargo)和構建工具、具有自動完成和類型檢查的智能多編輯器支持、一個自動格式化程序等等)。

Wiki: 在計算機科學中,垃圾回收(Garbage Collection,簡稱 GC)是指一種自動的存儲器管理[8]機制。當某個程序占用的一部分內存空間不再被這個程序訪問時,這個程序會借助垃圾回收算法操作系統(tǒng)歸還這部分內存空間。垃圾回收器可以減輕程序員的負擔,也減少程序中的錯誤。垃圾回收最早起源于 LISP語言。JavaC#、Go和 D 語言都支持垃圾回收器。

生態(tài)

Command Line - 利用 Rust 強大的生態(tài)系統(tǒng)快速開發(fā)出 CLI 工具。Rust 可以幫助你可靠地維護應用程序,并輕松地發(fā)布它。

WebAssembly- 使用 Rust 來增強你的 JavaScript,每個 rust crate 都對應一個 js 模塊,可以發(fā)布到 npm,用前端打包工具(webpack、vite、rollup等)進行捆綁。

Networking - 可預測的性能。小巧的資源占用。穩(wěn)如磐石的可靠性。Rust是網(wǎng)絡服務的最佳選擇(構建高性能服務器)。

Embedded- 針對低資源的設備?需要低層次的控制而不放棄高層次的便利?Rust可以滿足你的要求(嵌入式開發(fā),內核開發(fā)等)。

Rust 助力前端

Rust 因其出色的表現(xiàn),連續(xù) 7 年在 StackOverflow 調查中成為最受歡迎的語言(Stack Overflow Developer Survey 2022)。優(yōu)秀的特性自然也受到了前端的青睞,很多大神開始基于 Rust 重寫前端生態(tài)。

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

個人理解,不準確的地方歡迎討論:Rust 之所以優(yōu)秀是因為它借鑒了大量編程語言的優(yōu)秀特性,通過其自身的類型系統(tǒng),生命周期,所有權等概念將其統(tǒng)一起來,成為其安全可靠,高性能的重要保證(構建速度暫時不吐槽,畢竟團隊也在不斷努力提速中)。在編譯階段會對代碼進行檢查,拋出友好的錯誤,并給出大量指導性修改建議(很多時候都是編譯器在教我寫代碼),這在別的語言似乎很難看到。

學習教程

Awesome Rust- Rust 代碼和資源的精選列表

Rust語言圣經(jīng) (Rust Course)- 對標官方文檔,對 Rust 語言進行全面且深入的講解,輔以生動的示例和習題,語言詼諧幽默,值得一看

Rust語言中文社區(qū) - 每天會發(fā)布大量和 Rust 生態(tài)相關的文章,適合碎片化時間瀏覽

Node.js ? Rust

24 days from node.js to Rust- 24 篇關于 Rust 入門的系列文章,用 Rust 重寫常見的 JavaScript 任務(有大量對比示例代碼)

Rust for Node developers- 為 Node.js 開發(fā)人員介紹 Rust 編程語言

Rust for JavaScript peeps - 了解 JS,想嘗試 Rust,但不知道從哪里開始?這個給你!

...

生態(tài)

Turbo - Turbo 是用 Rust 編寫的一個為 JavaScript 和 TypeScript 優(yōu)化的增量捆綁器和構建系統(tǒng)(基于 SWC)

SWC (Speedy Web Compiler) - 是一個用 Rust 編寫的超快速 TypeScript / JavaScript 編譯器

Deno - JavaScript 和 TypeScript 的現(xiàn)代運行時

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(處于早期開發(fā)階段,不應在生產(chǎn)中使用)

nvm - Node.js 版本管理

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

Volta- JS Toolchains as Code

wasm-pack- 將 Rust 生成 WebAssembly 的一站式工具(生成可發(fā)布的 npm 包)

rsw - wasm-pack 的增強版 CLI,支持同時 watch,build,link 多個 rust crate

vite-plugin-rsw- 基于 Vite 的 wasm-pack 插件(基于 rsw 實現(xiàn))

Tauri - 構建跨平臺桌面應用,目前支持 macOS,Windows,Linux,未來也會支持 iOS/iPadOS 和 Android。后端使用 Rust,前端使用 HTML,CSS 和 JS(為 Electro的替代品)

Tauri 系列 - 中文教程,從零到一搭建一個 Tauri 項目

Yew- 是一個現(xiàn)代 Rust 框架,用于使用 WebAssembly 創(chuàng)建多線程前端 Web 應用程序,以下是 Yew 的替代品:

Percy - 用于使用 Rust + WebAssembly 構建同構 Web 應用程序的模塊化工具包

Seed - 用于創(chuàng)建 Web 應用程序的 Rust 框架

Perseus- 一個狀態(tài)驅動的 Rust 網(wǎng)絡開發(fā)框架,完全支持服務器端渲染和靜態(tài)生成

Sycamore- 用于在 Rust 和 WebAssembly 中創(chuàng)建響應式 Web 應用程序的庫

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

moon - 用 Rust 編寫的用于 Web 生態(tài)系統(tǒng)的構建系統(tǒng)和 repo 管理工具

Rustle - 用 Rust 重寫的 Svelte 編譯器

typed-html - Type checked JSX for Rust

Rolldown - 100% API 兼容的 Rust 版 Rollup,實現(xiàn)正在進行中(似乎停止更新)

Relay- Relay 編譯器使用 Rust 重寫

...







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編譯器
    +關注

    關注

    1

    文章

    1602

    瀏覽量

    48896
  • CLI
    CLI
    +關注

    關注

    1

    文章

    79

    瀏覽量

    8497
  • rust語言
    +關注

    關注

    0

    文章

    57

    瀏覽量

    2988

原文標題:Rust 在前端

文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    基于 Rust 的安全性和性能引入了 Rust。 Rust 很多優(yōu)勢,內存安全、并發(fā)安全、生態(tài)系統(tǒng)、包管理與構建管理,同時也有與 C/C++ 相同等級的性能。
    的頭像 發(fā)表于 07-25 09:14 ?1068次閱讀
    未來嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上<b class='flag-5'>Rust</b>

    Rust的 match 語句用法

    Rust 是一門現(xiàn)代化的系統(tǒng)編程語言,它擁有高性能、內存安全和并發(fā)性等特點。Rust 的語法設計非常優(yōu)秀,其中 match 語句是一種非常強大的語言特性。match 語句可以讓我們根據(jù)不同的匹配模式
    的頭像 發(fā)表于 09-19 17:08 ?805次閱讀

    使用rust開發(fā)stm32系列教程

    本文為使用 rust 開發(fā) stm32 系列教程前言。Why RustRust 特性就不用多介紹了,個編譯器管著有時候比用C到處浪把自己整沒了好。ST官方逐漸停止對C固件庫的更新,使用MX感覺沒
    發(fā)表于 08-20 07:18

    怎樣去使用Rust進行嵌入式編程呢

    使用Rust進行嵌入式編程Use Rust for embedded development篇首語:Rust的高性能、可靠性和生產(chǎn)力使其適合于嵌入式系統(tǒng)。在過去的幾年里,Rust在程序
    發(fā)表于 12-22 07:20

    Rust代碼中加載靜態(tài)庫時,出現(xiàn)錯誤 ` rust-lld: error: undefined symbol: malloc `怎么解決?

    “ [i]malloc ”、“ [i]exit ”。我驗證了使用 ` [i]nm ` 命令。 問題是我打算使用 ffi 在 rust 中使用這個靜態(tài)庫。當我嘗試在我的 Rust 代碼中加載靜態(tài)庫
    發(fā)表于 06-09 08:44

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

    Rust核心團隊發(fā)布了Rust 1.15穩(wěn)定版,新增了備受期待的自定義derive特性,讓代碼生成工具(如Serde和Diesel)能最大效能地工作。
    發(fā)表于 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版本,這樣也算一
    的頭像 發(fā)表于 10-12 15:59 ?2132次閱讀
    <b class='flag-5'>RUST</b>的真實驅動案例

    rust-analyzer Rust編譯器前端實現(xiàn)

    ./oschina_soft/rust-analyzer.zip
    發(fā)表于 05-19 09:23 ?2次下載
    <b class='flag-5'>rust</b>-analyzer <b class='flag-5'>Rust</b>編譯器前端實現(xiàn)

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

    ./oschina_soft/rust-av.zip
    發(fā)表于 06-01 11:39 ?1次下載
    <b class='flag-5'>rust</b>-av基于<b class='flag-5'>rust</b>的多媒體工具包

    Rust中GAT和高階類型

    Rust在類型系統(tǒng)級別上與Haskell,Scala許多相似之處。
    的頭像 發(fā)表于 11-07 10:21 ?1082次閱讀

    Chromium正式開始支持Rust

    ? Chromium 正式開始支持 Rust 目前的支持只是第一階段,在C++代碼中使用Rust寫的第三方庫(編譯成.so)。估計明年Chromium的二進制發(fā)行文件中會包含rust寫的庫。更廣
    的頭像 發(fā)表于 01-14 10:04 ?855次閱讀

    rust語言基礎學習: Default trait

    Default trait 顧名思義是默認值,即Rust為特定類型實現(xiàn) Default 特性時,可以為該類型賦予了可選的默認值。
    的頭像 發(fā)表于 05-22 16:16 ?1121次閱讀

    rust語言基礎學習: rust中的錯誤處理

    錯誤是軟件中不可避免的,所以 Rust 一些處理出錯情況的特性。在許多情況下,Rust 要求你承認錯誤的可能性,并在你的代碼編譯前采取一些行動。
    的頭像 發(fā)表于 05-22 16:28 ?1867次閱讀

    Rust的內部工作原理

    Rust到匯編:了解 Rust 的內部工作原理 非常好的Rust系列文章,通過生成的匯編代碼,讓你了解很多Rust內部的工作機制。例如文章
    的頭像 發(fā)表于 06-14 10:34 ?665次閱讀
    <b class='flag-5'>Rust</b>的內部工作原理

    從Rustup出發(fā)看Rust編譯生態(tài)

    從Rustup出發(fā)看Rust編譯生態(tài) 1. Rust和LLVM的關系是怎樣的? 2. Rustup中targets是什么,為什么可以安裝多個? 3. Rust在windows上為什么需要安裝Visual studio?
    的頭像 發(fā)表于 01-02 11:00 ?397次閱讀