0

rust进阶.并发.Tokio.1.Tokio简介

学习要,工作也不能拉下,所以这一段时间关于rust的博文少了些。 rust要学习的内容还很多,但我觉得应该优先打好基础,这其中比较关注的是并发。 提到rust的并发,先回忆在书本<<rust编程语言>>有许多的内容: 1.并发和并行 2.通过信道(channel)共享进程间数据 关键库和方法 std ...

正在战斗中 发布于 2025-06-12 11:35 评论(1) 阅读(30)
2

【实战】Rust与前端协同开发:基于Tauri的跨平台AI阅读器实践

一、背景与目标:为什么做一个“非典型”的RSS阅读器? 在信息爆炸的时代,RSS依然是高效获取结构化内容的重要方式,但市面上主流阅读器要么功能冗余(如集成社交属性),要么技术栈陈旧(依赖Electron导致内存占用高、性能差)。我们希望打造一款简约轻量、高效率、高性能、隐私安全的RSS阅读器,核心需 ...

姜 萌@cnblogs 发布于 2025-05-26 09:18 评论(2) 阅读(333)
0

rust进阶-基础.2.Option类型

Option类型是Rust中非常重要的一个类型,和Result也类似。 本文主要根据文档:枚举类型Option编写 主要阐述以下内容: 1.Option和Result比较 2.Option的主要方法 3.示例 1.Option和Result比较 以下内容来自于文心一言 特性 Option Resul ...

正在战斗中 发布于 2025-05-20 09:19 评论(0) 阅读(28)
2

【实战】深入浅出 Rust 并发:RwLock 与 Mutex 在 Tauri 项目中的实践

引言 你是否遇到过 Rust 并发场景下的资源竞争、性能瓶颈? 当多个线程同时抓取网页导致 IP 被封、多线程读写本地数据引发一致性问题时,如何优雅地实现线程安全? 本文结合开源项目 Saga Reader 的真实开发场景,深度解析 Arc/Mutex/RwLock 的实战技巧,带你从 “踩坑” 到 ...

姜 萌@cnblogs 发布于 2025-05-19 10:43 评论(0) 阅读(266)
0

rust进阶-基础.1.匿名函数和FnXXX特质

在rust中,匿名函数(或者说闭包)大量存在,所以有必要再次讨论匿名函数的一些问题。 其中比较关键的是和FnXXX特质的关系,以及和被捕获变量的关系。 本文的目的在于确认几个要点: 一、FnOnce,FnMut,Fn简单比较 比较汇总表 分类 执行次数 是否可以修改捕获的外部变量 是否归还捕获的外部 ...

正在战斗中 发布于 2025-05-11 11:24 评论(0) 阅读(41)
3

FunProxy - 使用 Rust 构建跨平台全链路测试抓包代理工具

在软件开发过程中,软件测试对于保障软件质量和用户满意度起着关键作用。为最大程度上提升软件品质,我们积极开展全链路测试实践,打造了用Rust语言开发的自研一站式抓包代理工具FunProxy,基于其跨平台、高性能、易于扩展、安全性高等特性,让全链路抓包和环境代理如丝绸般丝滑。 ...

vivo互联网技术 发布于 2025-05-08 11:16 评论(0) 阅读(395)
0

rust学习二十.14、RUST宏

毫无疑问,宏是rust中极其重要的存在,只要我们看看一些标准库的代码。本文阐述rust宏相关的若干问题 一、宏的定义和作用 先介绍下宏的起源和历史,以便读者更能体会。 以下内容来自文心一言生成: 词源与早期含义 希腊-拉丁词根 "macro"源于希腊语前缀μακρο-(makro-),意为“大”或“ ...

正在战斗中 发布于 2025-04-15 19:34 评论(0) 阅读(108)
0

rust学习二十.13、RUST的函数指针fn和匿名函数

函数指针是一个好东西。 一、简述 函数指针就是执行一段函数代码的指针。 根据官方的说法,函数指针实现了FnOnce,FnMut,Fn特质。 由于函数指针是一种数据类型,所以rustc允许它作为函数/方法的参数,这样就给程序设计添加了不少的灵活性. 我估摸着,rust设计者就是为了让rust能够适应潮 ...

正在战斗中 发布于 2025-04-10 19:09 评论(0) 阅读(51)
0

rust学习二十.12、RUST动态大小类型DST以及Sized特质

DST(dynamic size type)-中译“动态大小类型"。本文简要讨论动态大小类型的一些问题。 一、前言 rust作为一门静态类型语言,和大部分其它静态类型语言(C,C++,C#,JAVA)一样,希望在编译的时候知道每个实例/类型的大小。 作为静态类型语言,优点是毋庸置疑的的: 1.类型错 ...

正在战斗中 发布于 2025-04-08 19:21 评论(0) 阅读(56)
0

rust学习二十.10、RUST高级类型之新类型模式和类型别名

这两个内容都比较容易理解。 一、新类型(newtype)模式 注意,这里说的是一种编程模式,不是说有一个叫newtype的类型。 这种编程模式的含义:为某个类型作个封装,构建一个新的类型,以便绕过某些束缚,从而达成特定目的。 目的如下: a.用于抽象掉一些类型的实现细节 b.可以隐藏其内部的泛型类型 ...

正在战斗中 发布于 2025-04-03 19:32 评论(0) 阅读(43)
0

rust学习二十.9、RUST绕过孤儿规则实现特质和包装器缺点

回忆下孤儿规则: 1.只有当一个trait或类型在当前的crate中定义时,才能为外部类型实现该trait。 没有限定是特质还是类型 反过来,如果特质和类型都是外部,那么不能在当前单元包实现 2.例外情况-std中特质是例外。大体验证了凡事都有例外 孤儿规则的目的:避免编译器无法确定应该用哪一个实现 ...

正在战斗中 发布于 2025-04-03 17:03 评论(0) 阅读(58)
0

rust之map和filter初探。

点击查看代码 fn main() { let v = vec![1, 2, 3, 4]; let a: Vec<_> = v.iter().filter(|x: &&i32| *x % 2 == 0).map(|x: &i32| x * 2).collect(); let b: Vec<_> = v ...

狗十二 发布于 2025-04-02 00:01 评论(0) 阅读(46)
0

rust学习二十.8、RUST特质的限定,实为对类型的限定

有的时候,可能希望使用的特质已经实现了其它特质(看后面可以知道,实际是要求相关类型实现了其它特质)。 RUST支持为特质(trait)指定限定的特质。 例如我们定义特质A,之后定义了类型T,这个时候还希望T已经实现了特质TC。 在rust中就是这个语法: trait tx:t1 trait tx:t ...

正在战斗中 发布于 2025-03-31 17:59 评论(0) 阅读(28)
0

rust学习二十.7、RUST完全限定名以及静态方法

rust中看不到java等一些OOP语言的中用于修饰方法的static之类的关键字眼。 注:rust有static关键字,目前是用于修饰生命周期的或者是变量的 例如: let leaked_str: &'static str = Box::leak(tmp.into_boxed_str()); st ...

正在战斗中 发布于 2025-03-31 16:56 评论(0) 阅读(46)
0

rust学习二十.6、RUST通用类型参数默认类型和运算符重载

一、前言 为通用类型赋予一个默认的类型,大部分的语言是没有这个特性的,但是也有例外的,例如TypeScript(可能还有其它)。 例如TypeScript可以这样使用: class MyClass<T = number> { value: T; constructor(value: T) { thi ...

正在战斗中 发布于 2025-03-21 17:18 评论(0) 阅读(36)
0

rust学习二十.5、RUST特质中的关联类型

这是rust特质(trait)中颇有意思的一个特性。 一、前言 这个特性,在前面已经有接触过,例如书本的第十三章节的迭代器特质就有这个例子: impl Iterator for BooksIterator { type Item = String; fn next(&mut self) -> Opt ...

正在战斗中 发布于 2025-03-17 17:02 评论(0) 阅读(36)
0

rust学习二十.4、RUST使用不安全代码访问union(一存多表)类型

一、前言 看UNION的定义,颇为惊讶,居然有这样的类型(以前没有怎么用过C)。 以下一段来自于文心一言: 1.定义和用途union允许在相同的内存位置存储不同类型的数据,但在任意时刻只能使用其中一个类型。适用于需要在节省内存的情况下灵活存储不同类型数据的场景。2.内存布局所有字段共享相同的内存位置 ...

正在战斗中 发布于 2025-03-14 17:48 评论(0) 阅读(55)
0

rust学习二十.3、RUST使用不安全代码访问静态变量

一、前言 1.1、为什么要使用不安全块访问可变静态变量 根据rust设计人的理解:静态变量是可以修改,所以在并发情况下是可能存在并发/并行时候的不一致问题(如果要修改),这可能就不安全了。 所以,rust规定访问可变静态变量需要使用不安全代码块(unsafe块)。 1.2、比较静态变量和常量 1.常 ...

正在战斗中 发布于 2025-03-13 20:00 评论(0) 阅读(44)
0

rust学习二十.2、RUST不安全代码之不安全函数、特质和FFI

本文涉及到不安全函数和FFI(foreign function interface)(外部函数接口) 一、简述 在开始前,先介绍下unsafe代码块。 这个其实上一个章节有用到,但是未有正式介绍。 unsafe块形如: unsafe{ } unsafe块可以位于一个函数/方法内,也可以位于函数参数中 ...

正在战斗中 发布于 2025-03-12 17:53 评论(0) 阅读(52)
0

rust学习二十.1、RUST不安全代码之原始指针(裸指针)

一、前言 指针在前面的篇幅中已经介绍过许多,但主要是智能指针。 智能指针管理堆上的数据,并且受到rust的所有权和借用规则管理(注意,这里的所有权和借用有时候不同于最原始的那种)。 智能指针好歹能管着这些数据,但是rust中存在一些不能使用所有权管理的数据,它们需要利用原始指针来管理。 本文简要讨论 ...

正在战斗中 发布于 2025-03-10 17:47 评论(0) 阅读(93)