摘要:
In this article, we will conduct a performance comparison of three of the most popular Rust web frameworks: Axum, Actix, and Rocket. How we are going 阅读全文
摘要:
引言 作为程序员,我们常常需要统计项目中的代码行数,以了解项目规模和进度。市面上有很多代码统计工具,但不少工具存在统计不准、语言支持不全、性能不佳等问题。今天给大家介绍一个 Rust 生态中的代码统计利器:tokei。tokei 通过语法分析准确统计代码行数,目前已支持 200+ 种语言,而且性能卓 阅读全文
摘要:
译者:RivTian 原文:Here 作为 Rust subreddit的主持人,我经常发布有关开发人员试图将其各自的语言范例转换为 Rust 的帖子,结果不一而足,取得了不同程度的成功。 在本指南中,我将描述开发人员在将其他语言范例转换为 Rust 时遇到的一些问题,并提出一些替代解决方案来帮助你 阅读全文
摘要:
错误地使用可变和不可变借用 let mut data = vec![1, 2, 3]; let x = &data[0]; data.push(4); println!("{}", x); 不能在有不可变引用时修改数据。 忘记处理 Option fn main() { let some_number 阅读全文
摘要:
初学 Rust 时,即便是一个简单的 “Hello World” 程序中的打印语句也让我非常困扰。 新手在编写各种演示程序时肯定希望能够将变量打印出来以便观察。然而,总是对以下几点感到迷惑: 为什么 println! 后面会跟一个感叹号?格式化语法应当如何使用?问号运算符又是什么意思?为什么 Rus 阅读全文
摘要:
Cargo 使用了缓存的方式提升构建效率,当构建时,Cargo 会将已下载的依赖包放在 CARGO_HOME 目录下,下面一起来看看。 Cargo Home 默认情况下,Cargo Home 所在的目录是 $HOME/.cargo/,例如在 macos ,对应的目录是: $ echo $HOME/. 阅读全文
摘要:
在這篇文章中,我們將創建一個能執行的 Rust 腳本來測量 CPU 的性能。 爲了實現目標,我們將創建一些在循環中運行的虛擬計算,分佈在所有可用的 CPU 內核上。理想情況下,我們的計算需要 CPU 密集型任務,所以我們儘可能接近 100% 的 CPU 使用率。 創建一個 Rust 項目: carg 阅读全文
摘要:
在這篇文章中,我們將使用 gRPC 創建一個基本的 Todo 應用程序。首先,我們將非常快速的概述一下 gRPC 和 Protocol Buffers。 什麼是 gRPC? gRPC 是一個現代的開源的高性能遠程過程調用 (RPC) 框架,可以在任何環境下運行。RPC 代表遠程過程調用(Remote 阅读全文
摘要:
在开发程序的时候难免会需要在程序中引入外部的文件,为了方便管理我们也常会将这些文件放置在程序项目目录下。然而在代码撰写程序路径于运行阶段读取文件时,文件路径的正确性需要等到运行阶段的时候才会知道,就算写错了而找不到这个文件,程序项目也是能成功通过编译,这就会使得程序在运行阶段有出现问题的可能。 Ru 阅读全文
摘要:
背景 我相信大多数人在学习 Rust 异步编程时都会被 Future trait 中的 Pin 指针感到困惑: pub trait Future { type Output; fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Se 阅读全文
摘要:
keybinds.json // Place your key bindings in this file to override the defaultsauto[] [ // 以前配置的上下左右移动按键 { "key": "alt+j", "command": "cursorLeft", "wh 阅读全文
摘要:
背景 Rust 宏编程是这门语言比较有趣但又难以掌握的知识点,而且在大多数项目中使用频度并不算高。本文尝试性地总结 Rust 声明宏的原理和使用,目的是为了能更好地看懂一些项目中 macro_rules! 的逻辑。 所谓宏编程,我理解本质上就是元编程(据说最早源自 LISP 的「Code is Da 阅读全文
摘要:
基本原理 Rust 提供了一个 [cfg] 的编译选项,允许你基于一个传递给编译器的标记编译代码,有两种形式: #[cfg(foo)] 如果 foo 设置了编译对应代码; #[cfg(bar = "baz")] 如果 bar = "baz" ,则编译对应代码; 比如: fn main() { #[c 阅读全文
摘要:
背景 Rust 作为一门强大的系统编程语言,拥有一个现代且成熟的包管理机制。C/C++ 发展多年,迄今也没有特别靠谱好用且生态健全的包管理系统(据说 Conan 还不错),以至于很多时候都以源代码的形式(比如常见的 deps/ 目录或者 git submodules 等)来管理依赖。就这点上,Rus 阅读全文
摘要:
Rust 参考教程:Here JSON一种常用的由键值对组成的数据对象;本文将通过多个例子讲解在Rust中如何解析JSON内容,以及如何将结构体转换成JSON字符串。 在Rust中解析JSON文本通常需要使用一个JSON库。Rust标准库中有一个名为serde的库,它提供了序列化和反序列化结构体和其 阅读全文