也就是说,Cargo 执行 rustc(Rust 编译器)将 Rust 代码转换为可执行的二进制文件或共享库。 Rust 的特征:性能 Rust 充分发挥计算机的可用性能,Rust 不依赖 GC(垃圾收集器)来保证内存安全。 Rust 对安全的强调跨越了独立线程的界限,允许程序员可以随意使用并发编程特性。 10. Rust 的特征:内存效率 Rust 使你能够创建需要最小内存的程序。 Rust 的不足 循环数据结构 在 Rust 中很难对任意图结构这样的循环数据进行建模,实现一个双向链表是本科计算机科学水平的问题,但 Rust 的安全检查使得其很难实现。 将一个 Rust 项目移植到浏览器上只需要两个额外的命令行命令。 系统编程 许多大型程序都是用 Rust 实现的,包括编译器(Rust 本身)、视频游戏引擎和操作系统。
https://www.gauge.sh/blog/parsing-python-asts-20x-faster-with-rust Rust newtype 终极教程 通过Rust的newtype包装器可以提高类型安全性 这个教程非常全面,推荐阅读: https://www.howtocodeit.com/articles/ultimate-guide-rust-newtypes 微软Surface的UEFI是用Rust /ba-p/4159998 教程 - 使用Rust开发跨平台安全应用 讲解了Rust如何与TS配合。 https://www.firezone.dev/blog/using-tauri Rust 社区统计数据 这个统计各大社交平台上的Rust数据。显示Rust正在快速增长。2个月涨了几%。 https://rust.code-maven.com/rust-update-2024-06-17 --
本文是《Rust in action》学习总结系列的第二部分,更多内容请看已发布文章: 一、Rust实战系列-Rust介绍 “主要介绍 Rust 的语法、基本类型和数据结构,通过实现一个简单版 grep 命令行工具,来理解 Rust 独有的特性。 数字类型 整数和小数(浮点数) Rust 使用相对传统的方式定义整数和小数,操作数字使用算数符号。为了实现不同类型的运算,Rust 支持运算符重载。 创建轻量级 grep 已经基本了解 Rust 如何处理数字,接下来会了解 Rust 如何处理 text 文本。 cargo 管理项目,rustup 管理 Rust 环境的安装,rustup 关注 Rust 工具链,能够在不同版本的编译器之间转换。
新手也能学会的高性能gpu开发,只需要rust和cubel基础知识即可实现,让你的程序简单的使用gpu加速! CubeCL是一个现代化的Rust GPU计算框架,它让编写高性能、可移植的GPU内核变得简单。 简单易用:用Rust写GPU代码,学习曲线平缓 高性能:自动向量化优化,充分利用GPU算力 可移植:同一份代码可运行在WGPU/CUDA等不同后端 类型安全:Rust的类型系统保证代码安全性 提示: 即使没有GPU编程经验,通过本教程你也能快速上手CubeCL! GPU内核编程 与传统GPU编程不同,CubeCL允许直接用Rust编写运算逻辑。
今天,我们正式进入 Rust 基础的学习。在本文的内容中,我会为大家介绍以下内容: 基本 Rust 语法: 变量、标量和复合类型、枚举、结构、引用、函数和方法。 Rust 是个啥 Rust 是一种新的编程语言,在 2015 年发布了 1.0 版本,我会从以下方面让你知道 Rust 出现的意义: Rust 是一种静态编译语言,其作用与 c++ 类似。 Hi,I am Rust 了解了 Rust 是什么后,就让我们先来体验一番 Rust 最简单的程序: fn main() { println!("Hi, I am Rust!") Rust 在需要可变数量的参数(不允许函数重载)的情况下使用宏。 宏是“卫生的”,意味着它们不会意外地从它们所使用的范围中捕获标识符。Rust 宏实际上只是部分卫生的。 Rust 是多范式的。 为什么是 Rust 接下来,我会为你从几个方面介绍为什么 Rust 会在众多语言中突出重围。先来一个示例。
Rust 教程 - 函数基础 函数:代码界的"打工人",给啥干啥,干完交活 引入 你是不是已经写过一些 Rust 代码了? 今天咱们就来聊聊 Rust 里的函数,看看它和其他语言有什么不一样,以及为什么 Rust 编译器对函数的"返回值"这么较真。 } 表达式 vs 语句:Rust 的"灵魂拷问" 这是 Rust 新手最容易懵的地方。 ("{}", name); } 实战案例 案例 1:温度转换器 fn main() { let celsius = 25.0; let fahrenheit = celsius_to_fahrenheit 参考资料 Rust Book - 函数 Rust By Example - 函数
Rust 教程 - 结构体 结构体:数据的"收纳盒",把相关字段装一起 引入 你有没有写过这样的代码: let user_name = "Alice"; let user_age = ; let user_email 今天咱们就来聊聊 Rust 的结构体,看看它怎么帮你组织数据,以及它和其他语言的"类"有什么不一样。 核心概念 结构体是什么? 用这个 只读数据 &self 修改数据 &mut self 消耗/转换结构体 self 实战案例 案例 1:学生管理系统 struct Student { id: u32, name 参考资料 Rust Book - 结构体 Rust By Example - 结构体
Rust Vec 集合使用教程 本教程将介绍如何在 Rust 中使用 Vec<T> 集合。 Vec<T> 是一个动态数组,可以存储任意类型的元素。
Rust wgpu 图形编程教程 该系列为 YouTube 视频系列,近期系列视频见:https://www.reddit.com/r/rust/comments/v7ql92/rust_wgpu_graphics_programming_tutorial_youtube / 配套项目代码等见项目地址:https://github.com/jack1232/wgpu-step-by-step Qdrant v0.8.0发布 用纯 Rust 编写的开源Qdrant矢量搜索引擎的新版本 项目地址:https://github.com/greatest-ape/OctaSine ---- From 日报小组 @Jancd 社区学习交流平台订阅: Rust.cc论坛: 支持rss 微信公众号 :Rust语言学习交流
("{} {}", s1, "Rust"); // 推荐! // 访问(注意:不能直接用索引!) 再统一添加 let to_add: Vec<_> = nums.iter().copied().collect(); for num in to_add { nums.push(num); } 实战案例 is great Rust is fast Rust is safe"; let counts = count_words(text); for (word, count) 下篇我们讲讲 Rust 的错误处理机制,让你优雅地处理各种异常情况! 参考资料 Rust Book - Vectors Rust Book - HashMaps Rust Book - Strings std::vec::Vec std::collections::HashMap
Rust 教程 - 模块系统 模块系统:代码界的"收纳术",让混乱变秩序 引入 想象一下,你的代码文件越来越长,从 100 行到 500 行,再到 1000 行...最后打开文件,好家伙,滚轮都滚不到底 的"编译单元" Crate 是 Rust 编译的最小单元。 ("种花"); } 路径:找到你的代码 Rust 用路径来定位模块里的东西,就像文件系统的 /home/user/file.txt。 } } fn serve() {} } 记忆技巧: self = 当前目录(.) super = 上一级目录(..) crate = 项目根目录(/) 实战案例 下一篇咱们聊聊结构体,看看 Rust 怎么组织数据! 参考资料 Rust Book - 模块系统 Rust By Example - 模块
Linux内核 Rust开发环境教程 本文是一份有关如何设置 Linux 内核 Rust 开发环境的教程: 安装所需的依赖项和 Rust 工具链。 使用 rust-analyzer 和其他工具改进开发体验。 . github 地址 https://github.com/fujiapple852/trippy Rust是JavaScript工具开发的未来趋势吗 Rust Bytes近日的简报探讨了Rust在JavaScript 例如,Rolldown这样的Rust打包工具能够与现有JavaScript工作流程无缝集成,并且如SWC、Deno和Rome等流行工具已经使用Rust开发。 另外,简报提到了以Rust为基础的现代网络渲染引擎Servo,并分享了其他一些Rust项目和文章链接,包括最新版本Rust的发布和一些实用工具的介绍。
微软出 Rust 新手教程了 微软给想学习 Rust 的朋友提供了一份新手教程, 手把手带你走出 Rust 第一步. 原文链接: https://docs.microsoft.com/en-us/learn/paths/rust-first-steps/ box 里都有什么? Cool bear 的最新文章. 原文链接: https://fasterthanli.me/articles/whats-in-the-box 透过 Rust 探索系统的本原:RAII RAII - Resource Acquisition 原文链接: https://mp.weixin.qq.com/s/jaKjzc_1rkDe67rfpnFTgg What's New in Rust 1.50 and 1.51 最近几个版本 Rust 的别名, 虽然 Rust 也提供了类似的功能, 但是还没有 stable, 在此之前, 可以使用该库来替代 use trait_set::trait_set; trait_set!
课程主题:《通过实战理解 Rust 宏》 课程时间: 2021年8月15日 20:30-21:30 课程介绍: 如果想用 Rust 开发大型目,或者学习大型项目代码,特别是框架级别的项目,那么 Rust settings.rs#L19 https://github.com/datafuselabs/datafuse/blob/master/fusequery/query/src/sessions/macros.rs Rust 语言强大的一个特点就是可以创建和利用宏,不过创建宏看起来挺复杂,常常令刚接触 Rust 的开发者生畏惧。 在本次公开课中帮助你理解 Rust Macro 的基本原理,学习如何创自已的 Rust 宏,以及查看源码学习宏的实现。 课程大纲 什么是 Rust 宏 什么是宏运行原理 如何创建 Rust 宏过程 阅读 datafuse 项目源码, 学习项目中宏的实现
Rust 里每个值只有一个所有者,所有权转移后原变量就不能用了。 但这样有个问题:如果我想临时用一下某个值,但不想拿走它的所有权,怎么办? 今天咱们就来彻底搞懂 Rust 的借用和引用,这是 Rust 最核心也最容易懵的概念之一。准备好,我们要深入了! 核心概念 引用:& 符号 引用就是"指向某个值的指针",但不获取所有权。 ("{}", s); } 实战案例 案例 1:字符串处理函数 fn first_word(s: &str) -> &str { let bytes = s.as_bytes(); 不允许引用指向无效内存 切片是范围的引用,&str 和 &[T] 最常用 下篇预告:字符串在 Rust 里是个"坑货",String 和 &str 傻傻分不清? 参考资料 Rust Book - 引用和借用 Rust By Example - 借用
当你开始学习 Rust 时,很快就会遇到 Cargo,它是 Rust 生态系统中用于构建和运行 Rust 应用程序的标准工具。 在 《Rust 易学教程》 首篇中,我会简要概述一下 Cargo 是什么,以及它如何适应更广泛的生态系统。 安装 请按照 https://rustup.rs/ 上的说明操作。 Rust 代码示例 《Rust 易学教程》 中,我们将主要通过可以通过浏览器执行的示例来探索 Rust 语言。这样能使得配置更容易,并确保每个人都有一致的体验。 在教程的最后一部分,我们将做一个更大的练习,向你展示如何使用依赖关系,为此需要使用到 Cargo。 fn main() { println!("Edit me!") 在撰写本教程时,最新的稳定 Rust 版本号如下: % rustc --version rustc 1.69.0 (84c898d65 2023-04-16) % cargo --version cargo
Rust 教程 - 所有权 学 Rust 第一周:我是谁?我在哪?为什么我的代码又编译不过? 引入 说实话,刚开始学 Rust 的时候,我被所有权系统折磨得够呛。 后来才明白,不是编译器有问题,是我没搞懂 Rust 的"规矩"。今天咱们就来搞懂这个让无数新手抓狂的所有权系统。 } 错误信息: error[E0382]: borrow of moved value: `s1` 修复方法: let s2 = s1.clone(); // 克隆一份 实战案例 案例:处理用户输入 下篇预告 下一篇咱们讲讲变量与基本类型: 为什么 Rust 的变量默认不能改? let、const、static 有啥区别? Rust 有哪些基本类型? 类型推断是怎么工作的? 敬请期待! 参考资料 The Rust Book - Chapter 4: Ownership Rust By Example Rust 官方文档 互动问题: 你学 Rust 时被所有权折磨过吗?
编译时安全:许多ORM的错误只能在运行时发现,而Diesel能在编译阶段就发现问题高性能:Diesel专注于生成高效SQL,性能损耗极小Rust原生体验:与Rust语言深度结合,提供符合Rust习惯的API 活跃的社区:持续更新与维护,文档丰富简单来说,Diesel结合了Rust的安全性和SQL的强大功能,是Rust后端开发的理想选择! 安装了对应数据库(本教程以PostgreSQL为例)安装diesel_cli工具我们先安装diesel命令行工具:bashcargo install diesel_cli --no-default-features 总结Diesel是Rust生态中一个强大的ORM库,它结合了Rust的类型安全和SQL的强大功能。 通过本教程,我们学习了:Diesel的基础设置和配置定义表结构和迁移创建模型和建立关系实现基本的CRUD操作编写更复杂的查询希望这篇教程能帮助你在Rust项目中更有效地使用数据库!
安装warp框架 在 rust 中安装 warp 是非常简单的,使用 cargo 即可。这里介绍安装 warp 框架是为了介绍目前 rust 开发 web 相关的库。 "web_warp" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org pretty_env_logger 可以在控制台输出比较漂亮的日志记录,pretty_env_loggor 的作者也是 warp 的作者; tokio 是 rust 社区中比较常用的异步运行时,我们使用的
但在 Rust 里,字符串有两种:String 和 &str。 今天咱们就来彻底搞懂 Rust 的字符串,让你从此不再被编译器"教育"。 UTF-8:Rust 字符串的"灵魂" Rust 的字符串默认是 UTF-8 编码,这意味着: 可以存任何语言的字符 一个字符可能占 1-4 个字节 不能通过索引访问(因为不知道第 N 个字符从哪开始) let slice = &s[..]; // "你" 占 3 字节 实战案例 案例 1:统计词频 use std::collections::HashMap; fn count_words(text 参考资料 Rust Book - 字符串 Rust By Example - 字符串