跟小嘉学 Rust 编程
文章平均质量分 95
小嘉丶学长
这个作者很懒,什么都没留下…
展开
-
【跟小嘉学 Rust 编程】二十九、Rust 中的零拷贝序列化解决方案(rkyv)
本章节讲解 Rust的另外一个序列化的解决方案:零拷贝序列化解决方案(rkyv库)主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》主要教材参考 《Rust 异步编程》rkyv 是 Dusk network 赞助的第一个 ZKP(Zero-Knowledge Recrusion)研究项目。原创 2023-09-19 02:42:22 · 1361 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】三十四、Rust的Web开发框架之一: Actix-Web的进阶
上一章,我们讲解了 Actix Web的基础,现在讲解 Actix web的进阶,包含了错误处理、URL 分发原理、请求响应处理、中间件、静态文件、Websocket集成、热加载以及 shuttle 部署。原创 2023-11-02 00:00:47 · 1434 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础
本章节讲解 Rust的Web开发框架的介绍和对比。Actix Web、Axum、Rocket、Warp、Tide、Poem、Pavex、Hyper等框架。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》主要教材参考 《Rust 异步编程》主要教材参考 《Rust 设计模式》原创 2023-10-25 23:03:46 · 3189 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】三十二、Rust的设计模式(Design Patterns)
Rust不是面向对象的,设计模式与其他面向对象的编程语言不同,虽然细节不同,但是和具有相同的形式设计模式:是解决编写软件时常见问题的方法。反面模式:是解决这些相同的常见问题的方法。然而,在设计模式给我们带来好处的同时,反面模式却带来了更多的问题。惯常做法:是编码时要遵循的准则。它们是社区的社会规范。你可以打破它们,但如果你这样做,你应该有一个好的理由。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》原创 2023-09-20 10:45:12 · 2369 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】三十一、Rust的日志与追踪
本章节讲解日志与监控,系统的可观测性(Observability) 通常由三个维度:日志(Logging)、指标(Metric)和追踪(Tracing)。日志:离散的错误信息和状态信息指标:记录和呈现可聚合的数据追踪:单个请求的一系列事件;主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》原创 2023-09-19 06:25:34 · 1758 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】三十、Rust 使用 Slint UI
本章节 Slint UI 介绍,这是一个支持多语言(Rust/CPP/javascript)的、跨平台的、简单易用、高效执行的 UI库,Slint 是一个类似 QML 的标记语言,经过编译器 slinit compile 可完整的转换成CPP或者 Rust,其开发方式类似与QML+CPP。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》原创 2023-09-19 05:40:37 · 2981 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十八、Rust中的日期与时间(DateTime)
本章节讲解 Rust 的异步编程方案,我们将讲解 Future、Waker、Executor、Pin、async 和 await、Stream等主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》主要教材参考 《Rust 异步编程》time 是一个 Rust的日期时间库,他有如下的特点。原创 2023-09-18 01:21:36 · 3011 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】二十七、Rust 异步编程(Asynchronous Programming)
本章节讲解 Rust 的异步编程方案,我们将讲解 Future、Waker、Executor、Pin、async 和 await、Stream等主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》主要教材参考 《Rust 异步编程》并发是程序同时有多个正在运行的线程。原创 2023-09-17 19:14:47 · 2524 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】二十六、Rust的序列化解决方案(Serde)
本章节讲解的 Rust 序列化解决方案是以 serde 为中心的,包含了 serde、serde_json、serde_yaml等第三方库的使用主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》原创 2023-09-01 17:20:36 · 3906 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十五、Rust命令行参数解析库(clap)
本章节内容讲解 Rust 的第三方库 Clap,这是一个命令行参数解析库。使用API创建解析的方式有两种:Derive 方式、Builder方式。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》我们也可以使用自定义解析器用于改进错误信息提示和额外的验证。.arg(arg!()原创 2023-09-01 06:38:58 · 3439 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】二十四、内联汇编(inline assembly)
Rust 在 1.59 版本之中,引入了内联汇编支持,该特性对于需要底层控制的应用非常有用,例如想要控制底层执行、访问特定的机器指令等。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》以上内容就是讲解了 Rust 的 内联汇编。原创 2023-09-01 03:20:13 · 1186 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十三、Cargo 使用指南
接下来的章节讲详细讲解 Cargo 的具体使用,对于之前 Cargo 的介绍是一种补充或者说是更加详细的介绍,已经工程上的最佳实践方案。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》主要教材参考 《Cargo 指南》Cargo 是 Rust 的包管理工具,可以用于依赖包的下载、编译、更新、分发等操作。与 Cargo 一起 还有。原创 2023-09-01 02:42:35 · 2933 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十二、常用 API
本章节讲解 Rust 标准库 std::fs、std::io、std::path、std::collections、std::env等常见 API。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》以上就是今天要讲的内容。原创 2023-08-31 04:35:36 · 1972 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十一、网络编程
本章节讲解 Rust 标准库(std::net 模块)操作 TCP 和 UDP 编程主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》以上就是今天要讲的内容。原创 2023-08-31 03:10:11 · 2057 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】二十、进阶扩展
本章节内容属于提高篇,主要详细讲解指针、数据布局(内存布局、内存对齐)、所有权、类型转换、未初始化内存、资源管理、展开、并发、重排序等内容。主要教材参考 《The Rust Programming Language》主要教材参考 《Rust For Rustaceans》主要教材参考 《The Rustonomicon》主要教材参考 《Rust 高级编程》原创 2023-08-30 16:06:36 · 3372 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十九、高级特性
到目前为止,我们已经学习了 Rust 之中最常用的部分,本章节讲解如下特性不安全 Rust:如何选择退出 Rust 的某些保证,并负责手动维护这些保证;高级特征:关联类型、默认类型参数、完全限定语法、超特征以及特征相关的newtype模式高级类型:更多关于newtype模式、类型别名、never类型和动态大小类型的内容高级函数和闭包:函数指针和返回闭包宏:定义在编译时定义更多代码的方法主要教材参考 《The Rust Programming Language》原创 2023-08-27 02:43:23 · 2214 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十八、模式匹配(Patterns and Matching)
模式是Rust的一种特殊语法,用于匹配复杂的和简单类型的结构,模式与匹配表达式和其他构造结合使用,可以更好的控制流。模式由下列元素或组合组成字面值解构的数组、enum、struct、tuple变量通配符占位符想要使用模式,需要将其与某个值进行比较,如果模式匹配,就可以在代码中使用这个值的想应部分。主要教材参考 《The Rust Programming Language》以上就是今天要讲的内容。原创 2023-08-26 15:57:25 · 1794 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十七、面向对象语言特性
本章节讲解面向对象的特征,以及这些特征如何转化为 Rust。主要教材参考 《The Rust Programming Language》以上就是今天要讲的内容。原创 2023-08-26 15:11:13 · 1503 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十六、无畏并发(Fearless Concurrency)
Rust无畏并发:允许你编写没有细微Bug的代码,并在不引入新Bug 的情况下易于重构。并发包含如下两种Concurrent:程序的不同部分之间独立的执行parallel:程序的不同部分同时运行主要教材参考 《The Rust Programming Language》原创 2023-08-26 14:34:14 · 1935 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十五、智能指针
指针是一个包含了内存地址的变量,该内存地址引用或执行了另外的数据。在Rust中最常见的指针类型就是引用。不同的是在Rust中引用被赋予更深的含义就是借用其他变量的值。主要教材参考 《The Rust Programming Language》以上就是今天要讲的内容。原创 2023-08-26 10:04:12 · 1267 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十四、关于 Cargo 和 Crates.io
到目前为止,我们讲解了 Cargo 的最基本的特性来构建、运行、测试代码,但是它可以为我们做更多的事情。通过 release profile 来自定义构建在crates.io上发布库文件通过 workspaces 组织大工程从crates.io来安装库使用自定义命令扩展 cargo主要教材参考 《The Rust Programming Language》原创 2023-08-26 08:31:14 · 2107 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十三、函数式语言特性:迭代器和闭包
Rust的设计灵感来源于很多现存的语言和技术,其中一个显著的影响就是函数式编程函数式编程风格通常包含将函数作为参数值或其他函数的返回值、将韩式赋值给变量以供之后执行等等。主要教材参考 《The Rust Programming Language》自定义迭代器很简单,我们只需要实现 Iterator 特征 以及next 方法即可。实际上 Iterator 之中还有其他方法,其他方法都有默认实现,无需手动去实现。原创 2023-08-26 07:25:11 · 2122 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】十二、构建一个命令行程序
本章是一个目前所学的很多技能的应用,以及标准库的探索,我们讲构建一个命令行程序工具来练习现在已经学习过的一些Rust的技能。我们将构建自己的版本的命令行工具:grep(Globally search a Regular Expression and print)。主要教材参考 《The Rust Programming Language》原创 2023-08-10 06:56:04 · 2626 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】十一、编写自动化测试
程序测试是一种非常有效方法来测试Bug的存在,但是对于显示它们的缺失是完全不够的。程序的正确性是指代码在多大程度上完成了我们想让它做的事情。Rust 在设计时高度关注程序的正确性,但正确性时复杂的,而且不容易证明。本章节将会讲解测试函数、单元测试、集成测试、性能测试等等。主要教材参考 《The Rust Programming Language》原创 2023-08-06 01:20:19 · 1371 阅读 · 5 评论 -
【跟小嘉学 Rust 编程】十、泛型(Generic Type)、特征(Trait)和生命周期(Lifetimes)
每一门编程语言都有有效处理重复的工具。我们可以使用泛型来定义具体类型或其他属性的抽象替代品。主要教材参考 《The Rust Programming Language》原创 2023-07-03 15:55:04 · 1106 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】九、错误处理(Error Handling)
Rust的可靠性源自于错误处理,大部分情况下,在编译时提示错误并处理。Rust 将错误分为两大类:不可恢复的和可恢复的错误。对于可恢复的错误,例如未找到文件,很能只向用户报告问题并重试操作。不可恢复的错误总是bug的症状,比如试图访问超过数组末尾的位置,因此我们希望立即停止程序。大多数语言不区分这两种错误,并以相同的方式处理这两种错误,使用异常等机制。Rust 之中没有异常。主要教材参考 《The Rust Programming Language》原创 2023-06-30 03:43:28 · 2077 阅读 · 9 评论 -
【跟小嘉学 Rust 编程】八、常见的集合
Rust 的标准库包括许多非常有用的数据结构,称为集合。大多数其他数据类型表示一个特定的值,但是集合可以包含多个值。与内置数组和元组类型不同,这些集合指向的数据存储在堆中。本章节主要讲解 Vector、String、HashMap主要教材参考 《The Rust Programming Language》原创 2023-06-28 01:46:16 · 1734 阅读 · 1 评论 -
【跟小嘉学 Rust 编程】七、使用包(Packages)、单元包(Crates)和模块(Module)来管理项目
本章节主要将使用包(Packages)、单元包(Crates)和模块(Module)来管理项目。主要教材参考 《The Rust Programming Language》原创 2023-06-27 14:17:50 · 1149 阅读 · 1 评论 -
【跟小嘉学 Rust 编程】六、枚举和模式匹配
本章节主要教材参考 《The Rust Programming Language》枚举允许您通过枚举其可能的变体来定义类型。使用 enum 关键字定义枚举类型。以上就是今天要讲的内容1、如何定义枚举以及枚举的使用2、match 控制流3、if let 控制流。原创 2023-06-26 01:26:26 · 2538 阅读 · 2 评论 -
【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据
本章节讲解一种自定义数据类型:结构体,它允许将多个相关的值打包在一起命名,如果你熟悉面向对象语言,那么结构体就像类一样。主要教材参考 《The Rust Programming Language》要定义结构体,使用关键字 struct 并为结构命名。结构体的名称应该描述组合在一起的数据的重要性。另外打括号包括起来的数据名称和类型,我们称之为字段。例子:user 结构定义以上就是今天要讲的内容本章我们讲解了如何定义结构、如何使用结构、如何定义方法、关联函数等。原创 2023-06-24 03:51:11 · 3175 阅读 · 3 评论 -
【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念
本章节将讲解 Rust 独有的概念(所有权)。所有权是 Rust 最独特的特性,它使得 Rust 能够在不需要垃圾收集器的情况下保证内存安全。因此理解所有权是如何工作很重要原创 2023-06-23 15:34:47 · 4198 阅读 · 6 评论 -
【跟小嘉学 Rust 编程】三、Rust 的基本程序概念
本章节涵盖几乎所有编程语言会出现的概念以及他们在 Rust之中的工作原理,这不是 Rust 独有的,但我们将在 Rust 上下文中讨论他们,并且解释这些概念。详细来讲就是变量、基本类型、函数、注释和控制流。主要教材参考 《The Rust Programming Language》原创 2023-06-22 18:24:40 · 3105 阅读 · 6 评论 -
【跟小嘉学 Rust 编程】二、Rust 包管理工具使用
本章节讲解 Cargo 如何使用,以及 cargo 配置文件。内容主要教材参考 《The Rust Programming Language》原创 2023-06-22 00:54:31 · 1589 阅读 · 0 评论 -
【跟小嘉学 Rust 编程】一、Rust 编程基础
本系列旨在分享 Rust 学习心得,适合初学者入门,后续系列会有 Rust 项目实战系列编程介绍。主要教材参考 《The Rust Programming Language》原创 2023-06-21 23:35:40 · 2701 阅读 · 2 评论