Rust HTTP 协议栈在终端通信场景的实践 - 胡凯第三届中国Rust开发者大会 Rust HTTP 协议栈在终端通信场景的实践 胡凯 hukai45@huawei.com 华为 公共开发部 嵌入式软件能力中心 什么是 HTTP 协议? ⚫ HTTP 协议介绍 目录 终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题。 ⚫ 终端 HTTP 通信场景浅析 我们当前结合 Rust 和终端通信场景的实践的简单介绍。 ⚫ Rust Rust 与 HTTP 协议栈结合的业界实现。 ⚫ Rust 与 HTTP 协议 HTTP 协议介绍 Part 01 什么是 HTTP 协议? Rust China Conf 2022 – 2023, Shanghai, China Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议,即超文本传输协议(HyperText 和超媒体 信息系统的应用层协议。 HTTP 是一个客户端(用户)和服务端(网站)之间请求和应答的标准。 Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议主要具有以下特点: ✓ 支持客户/服务器模式。 ✓ 简单快速:客户向服务器请求服务时,只需传送 请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速度很快。0 码力 | 26 页 | 1.25 MB | 1 年前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕@DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - IBC协议的核心已经被协议核心团队用Rust语言实现。 - 对于本身就是 对于本身就是使用Rust语言作为智能合约开发的区块链 平台来说,支持集成支持IBC协议会很方便。 - 这里优先构想了在Solana链上实现IBC协议,因为 Solana平台本身极 低的gas消耗,很适合我现在构思 的这套实现方案。(后面会做解释) 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合 约开发者在Solana上开发智能合约的难度。 - 以及本人对Solana平台的喜欢,优先考虑 了Solana平台,但是这套方案是可以推广到 任何的Rust智能合约平台的。 大致讲解下IBC协议的原理, 以及参与整个IBC协议活动的不同决策 IBC协议概述> 详细介绍IBC协议的基本概念和原理 Connection创建原理 Connection创建OpenInit Connection创建OpenTry Connection创建OpenAck0 码力 | 29 页 | 3.05 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐Implementing Cryptographic Algorithms and Protocols #3 Rust 实现密码与安全协议的优势与现状 Introduction to Shangmi Algorithms and Protocols #2 国密算法与协议介绍 Huawei Ylong Rust Cryptographic Framework #4 华为 Ylong Rust 密码库 织和个人在华使用密码产品管理办法》: 使用者 密码产品产地 限制使用情况 境外组织、个人 境内 可以使用 境外 需要《使用境外生产 的密码产品准用证》 中国法人、组织、公民 境内 可以使用 境外 不得使用 国密算法与协议介绍 Introduction to Shangmi Algorithms and Protocols Section #2 • 国密套件算法简介 • 国密 TLS 简介 来源:国密算法加密 – 2023, Shanghai, China • SM2 为椭圆曲线(ECC)公钥加密算法,非对称加密,提 供加解密、数字签名、证书生成、密钥交换功能。由于以上 用例,也常用于区块链或网络安全密码协议,如SSL/TLS、 VPN。 • 保证数据机密性、真实性和完整性。 • SM2 算法和 RSA 算法都是公钥加密算法,SM2 算法是一 种更先进安全的算法,其性能与安全性优于RSA,在我们国 家商用密码体系中被用来替换0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust在物理引擎研发中的应用 崔汉青前沿动作功能 缺乏动作功能 AI动作生成 优秀的易用性和适配性 缺乏AI能力 保证每个目标平台的极致性能 跨端确定性 – 保证所有目标平台计算结 果完全一致 具备分布式能力 – 通过横向扩展突破单 机物理算力的上限 Motphys 物理引擎的设计目标 Rust 的性能和 C/C++ 比肩,支持 SIMD 优 化,满足苛求性能的引擎研发需求; Rust 的零开销抽象甩掉了复杂设计的性能包袱 0.02s内多次通信 苛刻的低延迟要求 高速内网环境下的线 性扩展 – 新增结点的 网络开销恒定 高可用和负载均衡 Message的RTT 可测量 Motphys 分布式物理 引擎网络架构 derive serde vs protobuf • 通信协议选型 • protobuf/msgpack/… • 跨语言协议 • 需要额外定义数据结构 • Pure Rust • 我们不需要跨语言 以及它们的组合嵌套 • 分布式物理引擎的计算和IO都很重要 • 计算线程和IO线程分离,各自绑定CPU核心 Motphys 特化网络层 自定义 pure rust message 自定义编解码协议 自动 ack 和可测量 RTT 的通信框架 一切为低延迟服务 分布式物理,突破单机算力的瓶颈 关于咪咕项目详细情况请参考:https://mp.weixin.qq.com/s/a_tvBU0wk9IwGYNqVK4EbA0 码力 | 22 页 | 1.18 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭内存安全(Rust/Golang/Java) • 对WebAssembly⽣态⽀持友好 Why Rust? • 云端架构,我们⽆法根据设备地理位置实现就近通讯 • 只能做到在数据中⼼内相关的分布式扩展,⽆法直接进⾏ 全球节点的扩展 • 复杂的容灾⽅案 为什么需要geo-distributed 传统⽅案存在有问题 解决⽅案 geo-distributed架构 + 调度 如何管理分布式⽹络 我们 2)设备通过MQTT协议透明接⼊ 为什么需要可编程性 带来什么好处? 设备 程序 mqtt HPMQLite 上层MQTT Broker 设备 程序 HPMQ 上层MQTT Broker 通过边缘函数的⽅式快速兼容多⼚商 1)⾃定义协议+⾃定义函数 2)对接标准协议+公共函数 场景:多⼚商协议快速兼容 geo-distributed +0 码力 | 31 页 | 3.95 MB | 1 年前3
Comprehensive Rust(简体中文) 202412现许多高级功能,包括 但不限于: * 项目/软件包结构 * 工作区 * 开发依赖和运行时依赖管理/缓存 * 构建脚本 * 全局安装 * 它还可以使用子命令插件(例如 cargo clippy)进行扩展。 – 详情请参阅 官方 Cargo Book 2.2 本培训中的代码示例 在本培训中,我们将主要通过示例探索 Rust 语言,这些示例可以通过浏览器执行。这能大大简化配置过 程,并确保所有人都能获得一致的体验。 表达能力 – 枚举和模式匹配。 – 泛型。 – 无额外开销的外部函数接口(FFI)。 – 零成本抽象。 – 强大的编译器错误提示。 – 内置依赖管理器。 – 对测试的内置支持。 – 优秀的语言服务协议(Language Server Protocol)支持。 不用在这里占用过多时间。所有这些要点均会在后面进行详细讲解。 应该问问学生们都使用过哪些语言。根据答案侧重讲解 Rust 的不同特性: single set of parameter types. These types can be generic, which will be covered later. 6.6 宏 宏在编译过程中会扩展为 Rust 代码,并且可以接受可变数量的参数。它们以! 结尾来进行区分。Rust 标 准库包含各种有用的宏。 • println!(format, ..) prints a line to standard0 码力 | 359 页 | 1.33 MB | 11 月前3
刘用涛 CnosDB时序数据库的Rust实践Rust 3. 使用 Rust 经验分享 4. 反哺社区 1. CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 Scheduler Logical transform Physical transform 1.4基于DataFusion的高性能查询引擎 • 扩展数据源 • 扩展 SQL 语句 • 扩展流处理引擎 • 扩展优化规则 • 扩展时序函数 1.5 分布式 1. Shared nothing 2. Leaderless NRW Peer to peer model0 码力 | 26 页 | 3.28 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14.5. Cargo 自定义扩展命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 16.4. 使用 Sync 与 Send Traits 的可扩展并发 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 17. Async "%USERPROFILE%\projects" > mkdir hello_world > cd hello_world 编写并运行 Rust 程序 接下来,新建一个源文件,命名为 main.rs。Rust 源文件总是以 .rs 扩展名结尾。如果文件名 包含多个单词,那么按照命名习惯,应当使用下划线来分隔单词。例如命名为 hello_world.rs, 而不是 helloworld.rs。 现在打开刚创建的 main.rs 文件,输入示例0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版安装二进制文件 ........................................................................... 368 14.5. Cargo 自定义扩展命令 .............................................................................................. 369 ................................................................ 427 16.4. 使用 Sync 与 Send Traits 的可扩展并发 ................................................................... 433 17. Rust 的面向对象编程特性 .... "%USERPROFILE%\projects" > mkdir hello_world > cd hello_world 编写并运行 Rust 程序 接下来,新建一个源文件,命名为 main.rs。Rust 源文件总是以 .rs 扩展名结尾。如果文件名 包含多个单词,那么按照命名习惯,应当使用下划线来分隔单词。例如命名为 hello_world.rs, 而不是 helloworld.rs。 现在打开刚创建的 main.rs 文件,输入示例0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust在Substrate 开发框架中的使用● 永不离线 ● …… 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less Vs blockchain 协议: ● Bitcoin application chain app chain特点: ● Runtime 安全有开发者完全负责 ● 获取链上所有状态 ● 高度定制化,包括共识,通证,交易 方式 一个开源、模块化、可扩展的区块链开 发框架,涵盖了区块链的核心组件: ● Database layer ● P2P ● PoS ● Transaction pool ● Full / light client ●0 码力 | 37 页 | 967.22 KB | 1 年前3
共 27 条
- 1
- 2
- 3













