应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging)0 码力 | 30 页 | 2.50 MB | 1 年前3
2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动√ 基于开源的 rust-postgres 驱动开发,实现基于 sha256 的鉴权方式连接 openGuass 数据库 × 使用 rust 语言已有的 sha256 方式 × 使用 rust 语言已有的 RFC5802 三方包 √ 参考已有的基于 JAVA 语言实现的 openGauss sha256 鉴权代码,使用 rust 语言重新实现 5 方案介绍 - 认证流程 startup 支持的认证方法之上,额外提供的一种更安全的认证方式。 其认证流程遵循 RFC5802 标准 8 方案介绍 - 代码 postgres-protocol/src/message/backend.rs 中进行鉴权方式判定 9 方案介绍 - 代码 tokio-postgres/src/connect_raw.rs 中实现 SHA256 的加密及通信 postgres-protocol/src/message/frontend oTls,).unwrap(); client.simple_query("INSERT INTO foo(id) values(1)").unwrap(); 12 遇到的问题 • 版本问题 • 鉴权方式始终是MD5的问题 • 测试服务器 13 团队简介 纪凤楠 十一年研发工作经验。工作中主要是使用 JAVA 语言。 目前就职于中软国际,任职架构师。虽然是从事技术工作,但个人认为技术要为业务服务,因此也非常重视对业务的理0 码力 | 14 页 | 566.24 KB | 1 年前3
使用Rust与ClickHouse构建高效可靠的日志系统更友好的开源协议 系统介绍 • 多种接入方式 • Agent • Client • 查询 • LogQL • OpenTSDB • 其他功能 • 多租户 • 自定义索引 • 多维度统计 • 鉴权 • ... 系统介绍 • 写入 • 每天 100G • 磁盘 • 压缩比 1:13 • 内存 • Mencius • 200M左右 • ClickHouse • 2G以下 •0 码力 | 19 页 | 2.66 MB | 1 年前3
基于静态分析的Rust内存安全缺陷检测研究("alice:{}", alice); println!("bob:{}", bob); *alice = 2; } bob只读借用Box对象, alice临时失去修改权, 保留只读权 alice可读 bob自动归还Box对象, alice恢复修改权 如果需要违背XOR Mutability怎么办? ❑ 以双向链表为例,中间节点被前后两个节点访用 ❑ Rust为了提升可用性所做的妥协 ▪ 智能指针(性能损失)0 码力 | 28 页 | 1.55 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0`target/debug/variables` The value of x is: 5 The value of x is: 6 通过 mut,允许把绑定到 x 的值从 5 改成 6。是否让变量可变的最终决定权仍然在你,取决于 在某个特定情况下,你是否认为变量可变会让代码更加清晰明了。 常量 类似于不可变变量,常量 (constants) 是绑定到一个名称的不允许改变的值,不过常量与变量 还是有一些区别。 当尝试在调用 takes_ownership 后使用 s 时,Rust 会抛出一个编译时错误。这些静态检查使 我们免于犯错。试试在 main 函数中添加使用 s 和 x 的代码来看看哪里能使用它们,以及所有 权规则会在哪里阻止我们这么做。 返回值与作用域 返回值也可以转移所有权。示例 4-4 展示了一个返回了某些值的示例,与示例 4-3 一样带有类 似的注释。 文件名:src/main.rs fn main() 所以什么也不会发生 变量 s 有效的作用域与函数参数的作用域一样,不过当 s 停止使用时并不丢弃引用指向的数 据,因为 s 并没有所有权。当函数使用引用而不是实际值作为参数,无需返回值来交还所有 权,因为就不曾拥有所有权。 我们将创建一个引用的行为称为 借用(borrowing)。正如现实生活中,如果一个人拥有某样 东西,你可以从他那里借来。当你使用完后,必须还回去。因为我们并不拥有它的所有权。0 码力 | 562 页 | 3.23 MB | 26 天前3
Rust语言核心竞争力-庄晓立资源析构函数(Drop),无论该资源在堆上还是栈上。 Rust的RAII青出于蓝而胜于蓝(蓝=C++) (std::unique_ptr) Borrowing(租借使用权) Shared borrow (多人共享/只 读) Mutable borrow (独家修改和使用权) &T &mut T &T Owners Clients 好借好还再借不难 我死之前必须还我 Lifetime • Lifetim0 码力 | 51 页 | 1.09 MB | 1 年前3
Rust 程序设计语言简体中文版`target/debug/variables` The value of x is: 5 The value of x is: 6 通过 mut ,允许把绑定到 x 的值从 5 改成 6 。是否让变量可变的最终决定权仍然在你,取 决于在某个特定情况下,你是否认为变量可变会让代码更加清晰明了。 常量 类似于不可变变量,常量 (constants) 是绑定到一个名称的不允许改变的值,不过常量与变量 还是有一些区别。 当你准备好继续的时候,让我们讨论一个其他语言中 并不 常见的概念:所有权 (ownership)。 70/600 Rust 程序设计语言 简体中文版 4 . 认 识 所 有 权 认识所有权 ch04-00-understanding-ownership.md commit a5e0c5b2c5f9054be3b961aea2c7edfeea591de8 所有权(系统)是 借用(borrowing)、slice 以及 Rust 如 何在内存中布局数据。 71/600 Rust 程序设计语言 简体中文版 4 . 1 . 什 么 是 所 有 权 ? 什么是所有权? ch04-01-what-is-ownership.md commit 3d51f70c78162faaebcab0da0de2ddd333e7a8ed Rust 的核心功能(之一)是0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记Rust 会连同变量绑定的内存,不管是否为常量字符串,连同所有者变量一起被 销毁释放。 3.1.3 移动语义 在 Rust 中,和“绑定”概念相辅相成的另一个机制就是“转移 move 所有 权”,意思是,可以把资源的所有权(ownership)从一个绑定转移(move)成另 一个绑定,这个操作同样通过 let 关键字完成,和绑定不同的是,=两边的左值 和右值均为两个标识符: 语法: Send。Rust 之所以这样强制要求,主要是为 了解决并发安全的问题,再一次强调,安全是 Rust 考虑的重中之重。如果一个 类型是 Send,则表明它可以在线程间安全的转移所有权(ownership),当所有 权从一个线程转移到另一个线程后,同一时间就只会存在一个线程能访问它, 这样就避免了数据竞争,从而做到线程安全。 在上面两个例子中,Rc 这一类型的智能指针没有实现 trait Send,而 Arc 实0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 202412IntoIterator,并在 GridIter 中存储对 Grid 的引用。 对于标准库类型,可能会出现同样的问题:for e in some_vector 将获得 some_vector 的所有 权,并迭代该矢量中的自有元素。请改用 for e in &some_vector 来迭代 some_vector 的元素的 引用。 25.3 FromIterator FromIterator 让您可通过0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.1.0 Rust版股票,那么在卖出 之前不能再买,目标是获取最大利润。 ‧ 霍夫曼编码:霍夫曼编码是一种用于无损数据压缩的贪心算法。通过构建霍夫曼树,每次选择出现频率 最低的两个节点合并,最后得到的霍夫曼树的带权路径长度(编码长度)最小。 ‧ Dijkstra 算法:它是一种解决给定源顶点到其余各顶点的最短路径问题的贪心算法。 15.2 分数背包问题 Question 给定 ? 个物品,第 ? 个物品的重量为0 码力 | 388 页 | 18.50 MB | 1 年前3
共 12 条
- 1
- 2













