 Rust 程序设计语言简体中文版....................................................................................... 115 6. 枚举和模式匹配 ................................................................................................ ....................................................................... 388 15.5. RefCell Rust 程序设计语言简体中文版....................................................................................... 115 6. 枚举和模式匹配 ................................................................................................ ....................................................................... 388 15.5. RefCell- 与内部可变性模式 ................................................................................... 393 15.6. 引用循环会导致内存泄漏 ........................... 440 17.3. 面向对象设计模式的实现 ........................................................................................... 446 18. 模式与模式匹配 ......................................... 0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6. 枚举和模式匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 15.5. RefCell Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6. 枚举和模式匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 15.5. RefCell- 与内部可变性模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 18.3. 面向对象设计模式的实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 19. 模式与模式匹配 . . . . . . . . . . . . . . . 0 码力 | 562 页 | 3.23 MB | 26 天前3
 Comprehensive Rust(繁体中文)40 8.3 疊代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.4 模式配對 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.5 練習:巢狀陣列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 III 第 2 天:上午 56 11 歡迎參加第 2 天課程 57 12 模式配對 58 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 12 253 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.5 型別狀態模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 51.6 embedded-hal . .0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文)40 8.3 疊代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.4 模式配對 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.5 練習:巢狀陣列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 III 第 2 天:上午 56 11 歡迎參加第 2 天課程 57 12 模式配對 58 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 12 253 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.5 型別狀態模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 51.6 embedded-hal . .0 码力 | 358 页 | 1.41 MB | 10 月前3
 Comprehensive Rust(繁体中文) 20240638 8.3 疊代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.4 模式配對 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.5 練習:巢狀陣列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 III 第 2 天:上午 54 11 歡迎參加第 2 天課程 55 12 模式配對 56 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 12 251 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 51.5 型別狀態模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 51.6 embedded-hal . .0 码力 | 356 页 | 1.41 MB | 1 年前3 Comprehensive Rust(繁体中文) 20240638 8.3 疊代器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.4 模式配對 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.5 練習:巢狀陣列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 III 第 2 天:上午 54 11 歡迎參加第 2 天課程 55 12 模式配對 56 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 12 251 51.4 開發板支援 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 51.5 型別狀態模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 51.6 embedded-hal . .0 码力 | 356 页 | 1.41 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 III 第二天:上午 56 11 欢迎来到第二天 57 12 模式匹配 58 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 12 4 Board support crates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.5 类型状态模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 51.6 embedded-hal . . minutes • Day 2 Morning (2 hours and 55 minutes, including breaks) Segment Duration 欢迎 3 minutes 模式匹配 1 hour 方法和特征 50 minutes 泛型 40 minutes • Day 2 Afternoon (3 hours and 10 minutes, including breaks)0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 III 第二天:上午 56 11 欢迎来到第二天 57 12 模式匹配 58 12.1 Matching Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 12 4 Board support crates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 51.5 类型状态模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 51.6 embedded-hal . . minutes • Day 2 Morning (2 hours and 55 minutes, including breaks) Segment Duration 欢迎 3 minutes 模式匹配 1 hour 方法和特征 50 minutes 泛型 40 minutes • Day 2 Afternoon (3 hours and 10 minutes, including breaks)0 码力 | 359 页 | 1.33 MB | 10 月前3
 基于静态分析的Rust内存安全缺陷检测研究如果需要违背XOR Mutability怎么办? ❑ 以双向链表为例,中间节点被前后两个节点访用 ❑ Rust为了提升可用性所做的妥协 ▪ 智能指针(性能损失) ▪ 允许使用裸指针(unsafe模式) • 逃逸编译器的借用检查 => 指针别名 next prev next prev next prev struct List{ val: u64, next: *mut List, MIR的特点对算法进行优化,使其可行 ❑ 整体思路:基于编译过程中的生成的MIR进行静态分析 ▪ 路径提取:控制流图=>生成树 ▪ 别名分析:分析指针之间的关联关系 ▪ 模式识别:根据预定义的缺陷模式检测指针漏洞 路径提取 别名分析 模式识别 “SafeDrop: Detecting memory deallocation bugs of Rust programs via static data-flow 对SCC出口处的alias关系统一取上界 ❑ 特殊情况特殊处理 路径提取 别名分析 模式识别 控制流图 生成树 别名分析 ❑ 主要规则: 路径提取 别名分析 模式识别 过程间分析 近似处理multi-level pointers ❑ 示例: 域敏感和过程间分析 过程间分析 域敏感 更新 缺陷模式 路径提取 别名分析 模式识别 生成新的所有者 大纲 一、问题背景 二、Rust指针缺陷检测方法0 码力 | 28 页 | 1.55 MB | 1 年前3 基于静态分析的Rust内存安全缺陷检测研究如果需要违背XOR Mutability怎么办? ❑ 以双向链表为例,中间节点被前后两个节点访用 ❑ Rust为了提升可用性所做的妥协 ▪ 智能指针(性能损失) ▪ 允许使用裸指针(unsafe模式) • 逃逸编译器的借用检查 => 指针别名 next prev next prev next prev struct List{ val: u64, next: *mut List, MIR的特点对算法进行优化,使其可行 ❑ 整体思路:基于编译过程中的生成的MIR进行静态分析 ▪ 路径提取:控制流图=>生成树 ▪ 别名分析:分析指针之间的关联关系 ▪ 模式识别:根据预定义的缺陷模式检测指针漏洞 路径提取 别名分析 模式识别 “SafeDrop: Detecting memory deallocation bugs of Rust programs via static data-flow 对SCC出口处的alias关系统一取上界 ❑ 特殊情况特殊处理 路径提取 别名分析 模式识别 控制流图 生成树 别名分析 ❑ 主要规则: 路径提取 别名分析 模式识别 过程间分析 近似处理multi-level pointers ❑ 示例: 域敏感和过程间分析 过程间分析 域敏感 更新 缺陷模式 路径提取 别名分析 模式识别 生成新的所有者 大纲 一、问题背景 二、Rust指针缺陷检测方法0 码力 | 28 页 | 1.55 MB | 1 年前3
 秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践Who am I ? 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. 应用链框架 2. 高性能 互操作(Interoperability) 4. EVM 兼容 5. Rust What is Axon What is Axon 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. Mempool(交易池) 2. Consensus (Overlord) 3. P2P (Tentacle) 4 ■ 抽象 ■ 便于协作开发 ■ 易于测试 优点 Mempool Traits 实现 实现 测试代码 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 • 直接调用 Prometheus API • AOP(面向切片) • LLVM IR • … 如何优雅地在代码中加入埋点0 码力 | 32 页 | 3.63 MB | 1 年前3 秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践Who am I ? 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. 应用链框架 2. 高性能 互操作(Interoperability) 4. EVM 兼容 5. Rust What is Axon What is Axon 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. Mempool(交易池) 2. Consensus (Overlord) 3. P2P (Tentacle) 4 ■ 抽象 ■ 便于协作开发 ■ 易于测试 优点 Mempool Traits 实现 实现 测试代码 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 • 直接调用 Prometheus API • AOP(面向切片) • LLVM IR • … 如何优雅地在代码中加入埋点0 码力 | 32 页 | 3.63 MB | 1 年前3
 Rust 异步并发框架在移动端的应用 - 陈明煜现有框架无法完美适配移动端(一) Core Thread Thread Worker Worker task task Local queue Local queue Tokio 采用了如右图这种 GMP 模式: • 一核可以绑定多线程,每个线程拥有一个 Worker ,每个 Worker 拥有一个任务队列 • 但线程拥有相同优先级 • Worker 只持有一个本地 FIFO 队列 移动端诉求:优先级 spawn_blocking 调度模式 spawn 调度模式 Thread Worker task Local queue Thread Thread task Global queue task New task Global queue New task take & run take & run Worker take & run Steal & run 两种接口拥有两套割裂的调度模式和线程池 库中 thread scope 的思想异步化  在同步环境阻塞等待子异步任务完成,在异步 环境异步等待子异步任务完成  优先级继承:子任务默认继承父任务优先级, 也可使用 detached 模式指定其他优先级  任务取消:取消父任务,也将取消所有子任务 性能 Performance 耗时 ( 单位 us) Tokio ylong 耗时比 / tokio IO 低并发,低传输0 码力 | 25 页 | 1.64 MB | 1 年前3 Rust 异步并发框架在移动端的应用 - 陈明煜现有框架无法完美适配移动端(一) Core Thread Thread Worker Worker task task Local queue Local queue Tokio 采用了如右图这种 GMP 模式: • 一核可以绑定多线程,每个线程拥有一个 Worker ,每个 Worker 拥有一个任务队列 • 但线程拥有相同优先级 • Worker 只持有一个本地 FIFO 队列 移动端诉求:优先级 spawn_blocking 调度模式 spawn 调度模式 Thread Worker task Local queue Thread Thread task Global queue task New task Global queue New task take & run take & run Worker take & run Steal & run 两种接口拥有两套割裂的调度模式和线程池 库中 thread scope 的思想异步化  在同步环境阻塞等待子异步任务完成,在异步 环境异步等待子异步任务完成  优先级继承:子任务默认继承父任务优先级, 也可使用 detached 模式指定其他优先级  任务取消:取消父任务,也将取消所有子任务 性能 Performance 耗时 ( 单位 us) Tokio ylong 耗时比 / tokio IO 低并发,低传输0 码力 | 25 页 | 1.64 MB | 1 年前3
 简谈 Rust 与国密 TLS - 王江桐2/TLCP)、Ticket( TLS1.2/TLS1.3) 8. 同步 API 以及基于可替换 Runtime 的异步 API 9. 支持单国密模式,单通用模式,或混合模式 TLS 使用 安全协议: 密码算法: 1. 对称加密:AES 、Chacha20 、SM4 2. 加密模式:GCM、XTS、CBC、CFB、CTR、OFB 3. 非对称加密:SM2、RSA 4. 签名算法: ECDSA(Nist、0 码力 | 44 页 | 3.70 MB | 1 年前3 简谈 Rust 与国密 TLS - 王江桐2/TLCP)、Ticket( TLS1.2/TLS1.3) 8. 同步 API 以及基于可替换 Runtime 的异步 API 9. 支持单国密模式,单通用模式,或混合模式 TLS 使用 安全协议: 密码算法: 1. 对称加密:AES 、Chacha20 、SM4 2. 加密模式:GCM、XTS、CBC、CFB、CTR、OFB 3. 非对称加密:SM2、RSA 4. 签名算法: ECDSA(Nist、0 码力 | 44 页 | 3.70 MB | 1 年前3
 Rust 语言学习笔记需要说明的是 if 中条件判断必须是 bool 类型,不能写出 if 5 这种判断条件。 2.2.2 match 语句 Rust 中没有类似于 C 的 switch 关键字,但它有用于模式匹配的 match, 能实现同样的功能,并且强大太多。 match 的使用非常简单,举例如下: let x = 5; match x { 1 => { println println!("{}", y); // 这里输出为:5 } if let 实际上是一个 match 的简化用法。设计这个特性的目的是,在条件判 断的时候,直接做一次模式匹配,方便代码书写,使代码更紧凑。 2.3 循环表达式 2.3.1 for 循环 Rust 的 for 循环实际上和 C 语言的循环语句是不同的。这是为什么呢?因为, for 循环不过是 线程对应一个语言线程。 很多编程语言提供了自己特殊的线程实现。编程语言提供的线程被称为 绿色 (green)线程,使用绿色线程的语言会在不同数量的 OS 线程的上下文中执行 它们。为此,绿色线程模式被称为 M:N 模型:M 个绿色线程对应 N 个 OS 线程,这里 M 和 N 不必相同。 在当前上下文中,运行时 代表二进制文件中包含的由语言自身提供的代码。 这些代码根据语言的不同可大可小,不过任何非汇编语言都会有一定数量的运0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记需要说明的是 if 中条件判断必须是 bool 类型,不能写出 if 5 这种判断条件。 2.2.2 match 语句 Rust 中没有类似于 C 的 switch 关键字,但它有用于模式匹配的 match, 能实现同样的功能,并且强大太多。 match 的使用非常简单,举例如下: let x = 5; match x { 1 => { println println!("{}", y); // 这里输出为:5 } if let 实际上是一个 match 的简化用法。设计这个特性的目的是,在条件判 断的时候,直接做一次模式匹配,方便代码书写,使代码更紧凑。 2.3 循环表达式 2.3.1 for 循环 Rust 的 for 循环实际上和 C 语言的循环语句是不同的。这是为什么呢?因为, for 循环不过是 线程对应一个语言线程。 很多编程语言提供了自己特殊的线程实现。编程语言提供的线程被称为 绿色 (green)线程,使用绿色线程的语言会在不同数量的 OS 线程的上下文中执行 它们。为此,绿色线程模式被称为 M:N 模型:M 个绿色线程对应 N 个 OS 线程,这里 M 和 N 不必相同。 在当前上下文中,运行时 代表二进制文件中包含的由语言自身提供的代码。 这些代码根据语言的不同可大可小,不过任何非汇编语言都会有一定数量的运0 码力 | 117 页 | 2.24 MB | 1 年前3
共 21 条
- 1
- 2
- 3













