Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇• Ownership 与 Lifetime • 无栈协程 Async Rust 回顾 Rust 的无栈协程抽象 — Future Async Rust 回顾 • 通过 poll 驱动的状态机 • 组合嵌套为调度单元: Task • async fn 语法糖 Async Rust 观测与调试的痛点 Async Rust 回顾 • 特性: Future 灵活的可组合性 • 任意定制 Tree 简化实现 • 无 Unsafe 代码 Await Tree 的实现 Await Tree 的设计原理与实现 • Future Adapter API 设计 • Adapter 内部维护状态机以操作 Await-Tree Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 10 码力 | 37 页 | 8.60 MB | 1 年前3
Rust分布式账务系统 - 胡宇处理被共识的 events ,更新状态机 (账户表) ○ 去重 & 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ● 4. 回调完成请求0 码力 | 27 页 | 12.60 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐2022 – 2023, Shanghai, China 客户端握手状态机与各 TLS 版本差异消息 使用 Rust 实现国密 TLS Use Rust to Implement Shangmi Protocols Rust China Conf 2022 – 2023, Shanghai, China 服务端握手状态机与各 TLS 版本差异消息 使用 Rust 实现国密 TLS0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯China Rust 与终端 HTTP 通信场景结合 功耗和性能表现: ➢ 使用 Rust 异步 IO 可以充分利用线程资源,带来稳定的性能表现。 ➢ 针对 HTTP 协议层的解析逻辑进行优化,使用状态机和可复用内存减少运行内存占用。 ➢ 管理和复用已有连接,减少连接的反复创建。 Thank you!0 码力 | 26 页 | 1.25 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0出错的,特别是之后增加了更多功 能和状态的时候。相反,Rust 编译器自动创建并管理异步代码的状态机数据结构。如果你感 兴趣的话:是的,正常的借用和所有权也全部适用于这些数据结构。幸运的是,编译器也会为 我们处理这些检查,并提供友好的错误信息。本章稍后会讲解一些相关内容! 最终需要某个组件来执行状态机,而这个组件就是运行时。(这也是为什么在了解运行时的时 候,你可能会看到 executors 这个词:executor 是运行时中负责执行异步代码的部分。) 现在我们能够理解之前示例 17-3 中为何编译器阻止我们将 main 本身标记为异步函数了。如果 main 是一个异步函数,需要有其它组件来管理 main future 返回的状态机,但是 main 是程序 的入口点!为此我们在 main 函数中调用 trpl::run,它设置了一个运行时并运行 async 块返 回的 future 直到其完成为止。 注意:一些运行时提供了相关的宏,所以你 回忆一下本章之前 future 中一系列的 await point 被编译为一个状态机,而编译器确保这个状 态机遵守 Rust 在安全方面的所有常规规则,包括借用和所有权。为了使其正常工作,Rust 检 查在一个 await point 和另一个 await point 之间或到异步代码块结尾之间什么数据是需要的。 编译器接着在生成的状态机中创建一个相应的变体。每一个变体获得其在源码中对应片段所用 到的数据的0 码力 | 562 页 | 3.23 MB | 24 天前3
共 5 条
- 1













