随笔分类 - language: Rust
摘要:「 顾名思义, rust 的旅行, rust 路途是颠簸的。 」 https://www.rust-lang.org/ 官方网站 生活 If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰 官方教学,及其延伸讲解/翻译 本标题的文档,存放初识 Rust 的走程
阅读全文
摘要:rust github source 在这一刻, 写下, 我是一个白萌新, 以下是我的rust之旅, 我只想走得顺一点, 按顺序来 Rust 是一个系统编程语言,它注重于三个方面:安全,速度和并发性 安全, 意味着, 你需要遵循它的规则 > 所有权; 引用和借用; 生命周期 速度 , 块范围 并发
阅读全文
摘要:在这篇文章中,我们将讨论如何在 Rust 中实现 API 限速。当涉及到生产中的服务时,是为了确保不良行为者不会滥用 API——这就是 API 限速的作用所在。 我们将实现 “滑动窗口” 算法,通过动态周期来检查请求历史,并使用基本的内存 hashmap 来存储用户 IP 及其请求时间。我们还将研究
阅读全文
摘要: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 时遇到的一些问题,并提出一些替代解决方案来帮助你
阅读全文
摘要:Cargo 使用了缓存的方式提升构建效率,当构建时,Cargo 会将已下载的依赖包放在 CARGO_HOME 目录下,下面一起来看看。 Cargo Home 默认情况下,Cargo Home 所在的目录是 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
阅读全文
摘要:背景 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的库,它提供了序列化和反序列化结构体和其
阅读全文
摘要:部分内容来自 Rust 2021 年期刊 内容目录 引言 Trait 基础 自动 Trait 泛型 Trait 格式化 Trait 操作符 Trait 转换 Trait 错误处理 迭代器 Trait I/O Trait 总结 引言 你是否曾想过下面这些 trait 有什么不同? Deref<Trag
阅读全文
摘要:Ownership, Borrowing 与 Lifetime 共同成就了 rust 中的内存安全,也是 rust 语言中最精髓的创造,我们就来学习学习它们究竟是什么,为什么要引入这些概念。 权力与风险共生 权力与风险往往是一同出现。如果你被授予了制作核弹的权力,那么在你制造它时其实是面临着诸多的风
阅读全文
摘要:reqwest 是 Rust 中一个非常流行和强大的 HTTP 客户端库,它提供了一种简单的方式来发送 HTTP 请求并处理响应。reqwest 支持阻塞和非阻塞(异步)请求,使其适合于各种不同的应用场景。在这篇博文中,我们将详细介绍如何使用 reqwest 发送各种 HTTP 请求,并处理返回的响
阅读全文
摘要:Rust 的 anyhow 库,它提供了一个简单而强大的方式来处理错误。本教程将引导你了解 anyhow 的核心特性,包括易用性、错误链、调试便利性,以及如何在不同场景下利用 anyhow 来简化错误处理。无论是快速原型开发还是应用程序顶层错误处理,anyhow 都是 Rust 开发者的得力助手。
阅读全文
摘要:Have you ever heard about the “turbofish”? It is that piece of Rust syntax that looks like ::<SomeType>. In this post I will describe what it does and
阅读全文