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 之所以优秀是因为它借鉴了大量编程语言的优秀特性,通过其自身的类型系统,生命周期,所有权等概念将其统一起来,成为其安全可靠,高性能的重要保证(构建速度暂时不吐槽,毕竟团队也在不断努力提速中)。在编译阶段会对代码进行检查,抛出友好的错误,并给出大量指导性修改建议(很多时候都是编译器在教我写代码),这在别的语言似乎很难看到。
学习教程
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 重写
...
关于连接器的选择与安装常见问题汇总
边缘AI在未来AIoT发展中的作用
机器视觉工业缺陷检测常用的图像处理算法
大疆Mavic mini小型无人机将于10月30发布
IPM的接口电路
Rust是什么?有哪些特性
浪潮服务器NF5466M5 视频存储的新选择
锐捷桌面整机RG-CT7800与统一操作系统UOS适配完成
DIY自制线路简洁的6P3P单端电子管功放电路
UWB高精度定位系统架构
什么是工业瘦客户机?工业瘦客户机和厚客户机有什么区别?
人工智能从入门到进阶实战
2019年的苹果手机或将增加双向无线充电功能
800家001号店撬动新增长!11月卡萨帝场景套购占3成
阿里云发布通义千问2.0,性能超GPT-3.5
如何判断LED透明显示屏质量的好坏
预测性维护:从数据采集开始
液晶面板的组成与原理
34亿元!台积电再向ASML订购一批设备
Facebook站到了道德的制高点 “苹果税”不得不让步