Comprehensive Rust(简体中文) 202412
/** Birthday service interface. */ . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.1 AIDL 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.2 Generated Service API 语句的行为都有明确定义 – 数组访问有边界检查。 – 整数溢出有明确定义(panic 或回绕)。 • 代 言功能:具有与高级语言一样丰富且人性化的表达能力 – 枚举和模式匹配。 – 泛型。 – 无额外开销的外部函数接口(FFI)。 – 零成本抽象。 – 强大的编译器错误提示。 – 内置依赖管理器。 – 对测试的内置支持。 – 优秀的语言服务协议(Language Server Protocol)支持。 不用在这 types allowed to be receiver types, such as Box. 13.2 特征(Trait) Rust 让您可以依据特征对类型进行抽象化处理。特征与接口类似: trait Pet { /// Return a sentence from this pet. 68 fn talk(&self) -> String; /// Print a string 0 码力 | 359 页 | 1.33 MB | 10 月前3Rust并行编译的挑战与突破
基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失 Specailization —— 基于GAT的共享数据结构实现 接口 入口 非共享 数据结构 共享 数据结构 接口 实现 接口 实现 执行结果 同一份代码 线程数为1 线程数大于1 同一份代码 缺点:业务代码带有泛型参数 挑战:消减共享数据结构效率损失 动态线程安全检查 —— . 查询互相调用 查询缓存系统 查询依赖信息 查询结果缓存 查询执行状态 查询保存文件 性能瓶颈点 频繁访问查询系统,成为效率瓶颈点 挑战:缓存系统访问热点效率瓶颈 Sharded —— 接口统一,存储分离 cache1 cache2 cache3 cacheM ... thread1 thread2 thread3 threadN ... 根据Key哈希值决定索引 Sharded数据结构设计0 码力 | 25 页 | 4.60 MB | 1 年前3Rust 异步并发框架在移动端的应用 - 陈明煜
移动端诉求:易用性 • IO 密集性任务与 CPU 密集型任务融合 异步并发框架如 tokio 大多用于处理大量 异步 IO 场景,而 CPU 密集型任务一般 使用 rayon 。 当前单框架提供的接口无法使用户在一个 任务中同时处理 IO 任务以及 CPU 任 务。 Incompatibility of the third party Runtime with Mobile 现有框架无法完美适配移动端(二) queue task New task Global queue New task take & run take & run Worker take & run Steal & run 两种接口拥有两套割裂的调度模式和线程池 华为 Ylong 异步并发框架 Ylong Runtime 并发框架 华为 Rust 异步并发框架,近期计划在 OpenHarmony 上开源。与 Tokio 类似,同样为事 类似,同样为事 件驱动型调度框架,提供异步 IO 、定时器、同步原 语等功能。但额外提供: 任务优先级调度 异步并行迭代器 结构化并发 Ylong Runtime 对外 接口 APP/SA 调度器 提 交 任 务 Async function CPU Task CPU Task IO Task IO Task Executor 高 中 低 线程池 Reactor0 码力 | 25 页 | 1.64 MB | 1 年前3简谈 Rust 与国密 TLS - 王江桐
若消息长度过长,需要进行分组,如果消息长度不足,则要进行填充。 • 保证数据机密性。 • 算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP 核的形式存在于芯片 中,调用该算法时,需要通过加密芯片的接口进行调用。 • 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应 用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 单证书机制 • Resumption + Ticket机制 • SM4GCMSM3 • Sm2国密单证书 • Sm2 IEEE ECDHE ylong_tls 支持版本以及特性 提供C-API接口方便C语言使用 ylong_tls Rust Adapt C-API (.h + so\.a) C APP Rust APP Rust纯软件实现 指令加速(X86、ARM) no_std版本 Conf 2022 – 2023, Shanghai, China • 提供通用 / 国密 / 混合 TLS 实现; • TLS 配置结构图,从 SetCipher 开始,增 加国密/通用/混合设置接口,并校验已有配 置,预先告警,避免错误。 使用 Rust 实现国密 TLS Use Rust to Implement Shangmi Protocols Rust China Conf 20220 码力 | 44 页 | 3.70 MB | 1 年前3Rust 语言学习笔记
我们可以结合使用 pub use 来实现 Re-exporting。Re-exporting 的字面 意思就是 重新导出。它的意思是这样的,把深层的 item 导出到上层目录中, 使调用的时候,更方便。接口设计中会大量用到这个技术。 还是举上面那个 a::b::c::d 的例子。我们在 main.rs 中,要调用 d, 得使用 use a::b::c::d; 来调用。而如果我们修改 a/mod.rs //hellocd } } 6.2.2 unsafe Rust 的内存安全依赖于强大的类型系统和编译时检测,不过它并不能适应所有 的场景。 首先,所有的编程语言都需要跟外部的“不安全”接口打交道,调用 外部库等,在“安全”的 Rust 下是无法实现的; 其次,“安全”的 Rust 无法 高效表示复杂的数据结构,特别是数据结构内部有各种指针互相引用的时候; 再次, 事实上还存在着一些 或在 Rust 中使用外部语言。 6.3 FFI(Foreign Function Interface) FFI(Foreign Function Interface)是用来与其它语言交互的接口,通常有两种 类型:调用其他语言和供其他语言调用。 在 rust 中一般常见的主要是和 C 打交道。调用 C 语言写的代码和编程库供 C 调 用。 使用 rust 调用 C 语言相对于使用于0 码力 | 117 页 | 2.24 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
表达式和 if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第七章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第八章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第九章探索 Rust 的错误处理的理念与技术。 第十章深入介绍泛型(generic)、Trait uninstall 本地文档 安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地 文档。 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口 (application programming interface,API)文档! 文本编辑器和集成开发环境(Integrated Development Environments, IDE) 提供了工作空间(workspaces)这一功能,我们将在第十 四章的 “Cargo Workspaces” 对此进行讲解。 我们也会讨论封装来实现细节,这可以让你在更高层面重用代码:你实现了一个操作后,其他 的代码可以通过该代码的公共接口来进行调用,而不需要知道它是如何实现的。你在编写代码 时可以定义哪些部分是其他代码可以使用的公共部分,以及哪些部分是你有权更改实现细节的 私有部分。这是另一种减少你在脑海中记住项目内容数量的方法。0 码力 | 562 页 | 3.23 MB | 10 天前3Rust 程序设计语言简体中文版
if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术。 第 10 章深入介绍泛型(generic)、Trait uninstall 本地文档 安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地 文档。 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口 (application programming interface,API)文档! 14/600 Rust 程序设计语言 简体中文版 1 . 2 . H e l l o “工作空间” 这一功能,我们将在第十四章的 “Cargo Workspaces” 对此进行讲解。 我们也会讨论封装来实现细节,这可以使你更高级地重用代码:你实现了一个操作后,其他的 代码可以通过该代码的公共接口来进行调用,而不需要知道它是如何实现的。你在编写代码时 可以定义哪些部分是其他代码可以使用的公共部分,以及哪些部分是你有权更改实现细节的私 有部分。这是另一种减少你在脑海中记住项目内容数量的方法。0 码力 | 600 页 | 12.99 MB | 1 年前3WebAssembly 简介 - 陈思衡
WASI),它定义了一组 WASM 模块可以调用的系统调用接口。WASI 的目的是让 WASM 模块可以访问底层系统的功能,比如文件系统、网络等。这使得 WASM 可以作为一个更广泛的 运行时,不仅仅局限于浏览器环境。WASI 当前定义了一组 POSIX 兼容的系统调用,让 WASM 模块可以访问文件系 统。未来 WASI 还会加入更多系统接口,为 WASM 提供更广泛的系统访问能力。 WebAssembly0 码力 | 24 页 | 773.46 KB | 1 年前3新一代分布式高性能图数据库的构建 - 沈游人
索引 LSM-Tree 容灾保障 ( BR ) 元数据层 事务管理 MVOCC 计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 一致性存储 RAFT 分片管理 元数据 集群管理 用户权限 GNN 应用层 Atlas 图平台 例如,对于属性的存储,可以通过自行序列化 / 反序列化大幅节省内存 • 而自定义存储格式往往需要内存的精细操作,由于 Rust 允许在 unsafe 下访问裸指针, 可以实现零开销读取 • 将 Unsafe 包裹,对外提供足够的接口 i32 i64 u32 u32 string string 定长 变长 高可用技术方案 基于 Chain Replication ( CRAQ ) 算法实现,进行数据副本处理,头 结点写,多结点读,支持读写分离0 码力 | 38 页 | 24.68 MB | 1 年前3在Solana合约链实现IBC协议跨链互操作 - 苏胤榕
IBC在Solana上的实现> 集成ibc-rs仓库实现solana-ibc TAO 集成ibc-rs仓库实现Solana-ibc TAO 在Relayer侧(中继器)需要实现的对应链的创建查询接口 为什么能将所有Rust合约链看作ICS06 Solomachine Client 这里就是整个方案的核心, 为什么我能将所有的rust合约链能看作是ICS06 solomachine cleint0 码力 | 29 页 | 3.05 MB | 1 年前3
共 15 条
- 1
- 2