应用 waPC (rust) 做软件测试工具第三届中国 Rust 开发者大会 应用 waPC (rust) 做软件测试工具 Alan poon 潘泳权 大家好! @rustropy_gaming ruito_89 PhoTto / image / chart Webassembly Procedures Call waPC 协议标准化了本机代码调用 WebAssembly 和 WebAssembly 调用本机代码的通信 (messaging) Microservices • Multiple backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own Support websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx,req.url0 码力 | 30 页 | 2.50 MB | 1 年前3
2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动2021信创“大比武”鲲鹏基础软件开发赛道 基于Rust语言的openGauss驱动 目录 1. 背景及要求 2. 方案介绍 3. 遇到的问题 4. 团队简介 3 背景 Rust是一门新兴的系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范 式的多范式语言。 openGauss数据库是一款高性能、高安全的数据库,社区支持Rust驱动可以更方便Rust语言开发者更好地基 使用Rust语言实现openGauss数据库驱动 基于SHA256进行权限认证 能够执行增删改查SQL语句 4 方案介绍 - 思路 × 参考 JDBC 标准,使用 rust 语言实现一个简单的只包含核心部分的版本 √ 基于开源的 rust-postgres 驱动开发,实现基于 sha256 的鉴权方式连接 openGuass 数据库 × 使用 rust 语言已有的 sha256 方式 × 使用 rust 语言已有的 RFC58020 码力 | 14 页 | 566.24 KB | 1 年前3
Rust OS 开源操作系统训练营的教与学-0615-李明第三届中国Rust开发者大会 Rust OS 开源操作系统训练营的教与学 李明 清华大学 2023-6-17 Rust China Conf 2023 Rust OS 开源操作系统训练营的教与学 1 Rust OS 开源训练营的起因和发展 Title Title Title 开源操作系统训练营的起源(2020年) 陈渝老师 向勇老师 OS Tutorial Summer 影响并培养更多的人学会写操作系统 每年为高校和企业培养1000名操作系统开发人才 参加训练营要回答的三个问题 你为什么要来参加这个活动? 为什么要以开源 的方式来参与? 我们如何能把这些 知识技能学到? Rust OS 开源操作系统训练营的教与学 2 开源训练营的总体规划和教学实践 教什么?怎么学? 在读本科生 在读研究生 已工作 52% 18% 30% Rust 语言编程 RISC-V • 2022:米明恒《操作系统调试器VSCode插件系统架构设计与实现》 • 2023:周子琪/周毅《ArceOS在华山派CV1811H上的移植》 • 2023:齐呈祥《hypercraft 开源项目》 学习博客 http://rcore-os.cn/blog/ 学习操作系统,锤炼个人核心技能 # 个人成长 12周持续输入,考验耐力与坚持 # 连续培训 # 适度竞争 1 四阶段提升,不断增强学习成就感0 码力 | 26 页 | 2.62 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI华中科技大学 网络空间安全学院 2023年6月 本次演讲…… 关于我…… • 笔名洛佳 • 华中科技大学网络空间安全学院研一 在读(导师:周威老师) • 研究方向:物联网安全、系统安全 • 热爱开源,乐于尝试新技术 • RustSBI项目维护者 • 致力于向科研、教学和产业界推广 Rust语言 汲取Rust嵌入式和操作系统生态经验,总 结而成的新一代驱动开发方法。动、静态 基地址结合,高灵活性;一次开发,同时 分享性外设:以GPIO为例 • 从前级环境获取所有权,如从ROM 运行环境的#[entry]获得; • 配置GPIO状态后,只有对应外设类 型允许的操作函数能通过编译,否则 拒绝编译,避免不安全行为; • 开源标准抽象的功能,使用抽象规定 的调用方法。本芯片外设专属的功能 也可通过专有函数使用; • 用户代码简短易懂,容易编写和调 试,降低开发成本。 *BL808组件化驱动操作GPIO按钮和灯 增 加 安 全 性 和 效 率 。 2023年的RustSBI 第 03 部分 RustSBI软件架构更新 • RISC-V SBI可运用于机器态和虚拟化 的宿主态,此时RustSBI实现应为虚 拟机提供电源、核管理等功能。 • 嵌套虚拟化存在时,RustSBI实现应 当为内部虚拟机软件模拟H指令集。 在这方面,Dramforever的项目1提 供了很好的例子。 • LARVa2项目是固件充当模拟器的例0 码力 | 21 页 | 3.12 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐wangjiangtong@huawei.com 华为 公共开发部 嵌入式软件能力中心 就职于华为,目前正在使用 Rust 开发密码相关模块。 Rustacean 在华为。 Title 简谈 Rust 与国密 TLS Introduction on Rust and Shangmi TLS 王江桐 wangjiangtong@huawei.com 华为 公共开发部 嵌入式软件能力中心 Overview of Shangmi Your Own Crypto: An Empirical Study of Vulnerabilities in Cryptographic Libraries”,MIT; • 对于8个大型、通用、开源的 C 与 C++ 密码库进行调研; • 现有的问题在于: • 密码库导致的一些错误,除了本身包含的一些算法错误以及内存错误,其他的一些问题出在用户的使用错 误,即文档、API、等相关说明的缺失; 无GC、无Runtime、无解释器 ü 零成本抽象 ü 后端LLVM优化 ü 支持C-ABI的FFI方式 ü 支持自定义内存分配器 Rust性能基本和C、C++持平,适用于系统级编程领域 ü 强大编译器 ü 全开源方式运作 ü Cargo ü Crates.io ü Docs.rs ü 自带测试框架 ü 支持跨平台 ü 多编程范式 ü 丰富的文档手册 高性能 高生产力 国密实现生态 Overview0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust 语言学习笔记这份学习笔记是在学习 Rust 的过程中的记录,主要基于《Rust 程序设计语言- 简体中文版》和《RustPrimer》两份开源书籍。 上面两本书籍相对全面,但对部分初学者可能更为深奥一些,尤其是之前没有 接触过 C/C++ 和 Rust 语言的读者。在学习过程中我对二份开源书籍进行了适 合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习 笔记。这份学习笔记的主要贡献在于涵盖了所有工程上基于 同级。 Rust 可以被归为通用的、多范式、编译型的编程语言,类似 C 或者 C++。与 这两门编程语言不同的是,Rust 是线程安全的! Rust 编程语言的目标是,创建一个高度安全和并发的软件系统。它强调安全性、 并发和内存控制。尽管 Rust 借用了 C 和 C++ 的语法,它不允许空指针和悬 挂指针,二者是 C 和 C++ 中系统崩溃、内存泄露和不安全代码的根源。 Rust 中有诸如 文件则不直接面向开发者,也不需要直接去修改这个文件。lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单文件。 Cargo 字段: 1.[package]段落描述了软件开发者对本项目的各种元数据描述信息。 2.[dependency] 3.单元测试主要通过在项目代码的测试代码部分前用#[test]属性来描述,而集 成测试,则一般都会通过 toml 文件中的[[test]]段落进行描述0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust在物理引擎研发中的应用 崔汉青崔汉青 Motphys CEO Motphys 驱动虚拟世界的全部运动 体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 规则驱动 AI生成 数据驱动 AI加速 云原生架构和 AI State Output glam 代码质量高,使用简单,但是没有 AoSoA类型,跨端确定性难以保证 nalgebra 过于复杂,大量的泛型导致使用 不便,代码质量一般 其余开源 crates 完成度不高 Rust 开源数学库的痛点 写好数学库并不容易 • 充分利用目标平台指令集 – 大量的针对目标平台的SIMD优化 • 数学计算本质上是类似的 – 大量的相似代码 • Portable 影响跨端确定性的因素太多了 motphys-math 为高性能物理引擎量 身定制 增加了 AoSoA 类型, 并做了大量 SIMD 优化 增加了跨端确定性模 式 保证所有设备浮点计算结果 完全一致 性能超越目前开源的 Rust基础数学库 glam nalgebra ultraviolet Generic, procedure macro, or… Generic 表达力不足 不容易做精细性能优化0 码力 | 22 页 | 1.18 MB | 1 年前3
Rust API可靠性分析与验证计算的Rust系统软件 • 研究生期间主要从事Rust测试与验证工具的研究,本人所在的是国内最早 开展Rust程序分析相关研究的实验室(https://artisan-lab.github.io) • 我们关于Rust库模糊测试的论文 RULF: Rust Library Fuzzing via API Dependency Graph Traversal 获得了软件工程顶级会议ASE2021的ACM杰出论文奖 所有权检查 开源于https://github.com/Artisan-Lab/RULF Rust China Conf 2021 – 2022, Online, China 结论以及未来的发展 1. Rust优秀的语言设计避免了大量可能发生的潜在错误 2. 目前Rust程序合成的难点在于unsafe代码,泛型与trait,宏等 3. 保障Rust程序的可靠性仍然需要各种程序分析以及软件测试的手段0 码力 | 13 页 | 1.68 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭可在边缘直接对数据进⾏相 关的计算(处理/存储)并提 供相应的查询功能 边缘架构 物联⽹设备的纽带 2. HPMQ 简介 HPMQ是基于Rust语⾔开发的 下⼀代可编程边缘分布式 MQTT软件,主要有以下⼏个 核⼼特性: • Geo-Distributed • 可编程性 • 云边⼀体化 • 兼容异构设备 HPMQ (Hyperconverged Programmable MQTT) geo-distributed架构 + 调度 如何管理分布式⽹络 我们主要基于eclipse-zenoh来做⼆次开 发,eclipse-zenoh是⼀款很优秀的rust 语⾔编写的,基于边缘架构的,开源分 布式消息服务基础架构,它帮我们解决 了很多分布式⽹络管理的共同的问题, ⽐如说分布式消息⼀致性问题,边缘节 点⾃动发现等问题 传统⽅案痛点 1)数据传输量⼤,中⼼压⼒⼤,⾼可⽤要求⾼ 配置 关联 关联 使⽤流程 编写函数 Hpmqfile OCI镜像 镜像仓库 hpmq-cli build hpmq-cli push 发布函数 Demo 4. HPMQ未来规划 开源(https://github.com/wangjuyunlian/hpmq) 基于零信任架构实现远程设备访问 消息边缘存储 发个招聘⼩⼴告(rust/c/c++岗位) 但愿诸贤集鹭汉,0 码力 | 31 页 | 3.95 MB | 1 年前3
Rust分布式账务系统 - 胡宇资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 ○ 节点是一个任务 ○ 边是依赖关系 ● 事务层 Marker 负责执行计划 ○ ACID 保证 ○ 依赖控制 ○ 条件执行 ○ 调度账户变动请求 跨分区转账 分布式账务系统 拥抱开源 github: https://github.com/airwallex/Auticuro doc: https://airwallex.github.io/Auticuro/docs/intro0 码力 | 27 页 | 12.60 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4













