Rust 到底香不香?
Rust 到底香不香? 霍丙乾 bennyhuo Kotlin 开发者的首“锈” 个人介绍 • 霍丙乾 bennyhuo • 猿辅导资深移动客户端工程师,Google 开发者专家 • 《深入理解 Kotlin 协程》 《深入实践 Kotlin 元编程》作者 • B 站连载《Rust 程序设计语言》读书视频已更新至 第 13 章 分享经历 2017.11 Android 技术大会 将 Android 生产环境中 2018.11 JetBrains 北京开发者大会 优雅地使用 Kotlin 的 Data Class 2020.5 机械工业出版社 《深入理解 Kotlin 协程》 2020.5 GDG Android 11 Meetup Kotlin 协程那些事儿 2020.10 / 11 GDG DevFest / 全球移动开发者峰会 Kotlin多平台在移动端应用与展望 2021.7 7 GDG 社区说 Kotlin 编译器插件:我们究竟在期待什么? 2021.11 / 12 GDG DevFest / Kotlin 中文开发者大会 从注解处理器 KAPT 到 符号处理器 KSP 2022.9 GDG 社区说 KLUE:统一 JS 调用 Native 函数的体验 2022.10 GDG DevFest 小猿口算 Android 项目优化实践 2023.4 GDG 社区说0 码力 | 10 页 | 484.75 KB | 1 年前3在Solana合约链实现IBC协议跨链互操作 - 苏胤榕
第三届中国Rust开发者大会 @DaviRain 在Solana合约链 实现IBC协议跨链互操作 简单介绍下IBC协议是什么,及其生态 简介 > 介绍IBC协议和其在跨链互操作中的作用 IBC协议中的角色和参与者 1. 客户端 2. 连接 3. 通道 4. 包 4. 中继器 解释为什么选择在Rust合约链中实现IBC协议 - I 低的gas消耗,很适合我现在构思 的这套实现方案。(后面会做解释) 引入Solana作为示例平台 - Solana极低的Gas花销。 - Anchor合约开发框架,大大降低了Rust合 约开发者在Solana上开发智能合约的难度。 - 以及本人对Solana平台的喜欢,优先考虑 了Solana平台,但是这套方案是可以推广到 任何的Rust智能合约平台的。 大致讲解下IBC协议的原理, 1. Rust语言的安全性和性能优势 2. Rust生态系统的丰富性 3.Solana平台的支持:Solana是一个基于Rust开发 的 高性能区块链平台,提供了完善的开发工具和文档,可 以帮助开发者更加便捷地进行Rust合约链开发。 4. Informal Systems提供的IBC协议Rust语言实现和 协议的形式化验证可以有效提高IBC协议的安全性和可 靠性,保障跨链交易的安全和正确性。0 码力 | 29 页 | 3.05 MB | 1 年前3Rust 程序设计语言简体中文版
底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的工 具 具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测试 和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒绝 编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间集 中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • Rust Language Server 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功 能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过0 码力 | 600 页 | 12.99 MB | 1 年前3Rust 语言学习笔记
本身可用于操作系统的开发。 开发者需要自己去定义路径,定义 mod 的层级关系,配合 rust 的默认约定。这 点和 java,go 开发完全不同,在面向 vm 的语言中这些都不需要考虑。 2.Rust 的包管理系统中使用了大量的默认约定,很容易使人头昏脑乱。 而在开发中我们又必须建立模块层级系统,rust 给出了如下方案,在给出了一 些模块的最基本规则外,由开发者更大范围地自定义模块的存在。 ,必须按照合理的方式构建 'cargo.toml'。 而 cargo.lock 文件则不直接面向开发者,也不需要直接去修改这个文件。lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单文件。 Cargo 字段: 1.[package]段落描述了软件开发者对本项目的各种元数据描述信息。 2.[dependency] 3.单元测试主要通过在项目代码 features 均是可选的 3.features 不能相互循环包含 4.开发依赖包不能包含在内 5. features 组只能依赖于可选软件包 features 的一个重要用途就是,当开发者需要对软件包进行最终的发布时,在 进行构建时可以声明暴露给终端用户的 features,这可以通过下述命令实现: $ cargo build --release --features "shumway0 码力 | 117 页 | 2.24 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已被证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的 工具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测 试和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒 绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间 集中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • rust-analyzer 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过 Rust0 码力 | 562 页 | 3.23 MB | 10 天前3硬件创业公司的Rust应用和转型 - 陈昱衡
第三届中国Rust开发者大会 硬件创业公司的Rust应用和转型 演讲人:陈昱衡 鹿仔科技联合创始人 CTO 鹿仔科技(重庆)有限公司 公司介绍 鹿 仔 科 技 ( 重 庆 ) 有 限 公 司 于 2 0 2 1 年 8 月 1 0 日 由 香 港 科 技 大 学 李 泽 湘 教 授 体 系 X b o t p a r k 旗 下 重 庆 明 月 湖 国 际 智 能 产 业 科 创 基 出货前夕 鹿仔远程控制终端 Rust的选择 稳定性 售后成本 学习成本 研发周期 人员成本 维护成本 产品稳定性 阶梯式的Rust转型 嵌入式的Rust应用 嵌入式Rust应用 更多开发者支持 利用系统级编程特性完善外设 更多的芯片厂商支持 SDK做Rust支持 SDK迁移到Rust 更多行业支持 更好的ROTS0 码力 | 23 页 | 4.95 MB | 1 年前3夏歌-使用Rust构建LLM应用
第三届中国 Rust 开发者大会 使用 Rust 构建 LLM 应用 夏歌 SECTION TITLE SECTION TITLE 我们能不能直接用 Rust • 训练 • 推理 • AI 应用相关的工具 • WASI-NN spec • WasmEdge 已经支持 Pytorch 、 TensorFlow Lite • WASI-NN 2.0 比如 Langchain Rewrite 学习曲线太陡峭了,学习周期太长了 招 Rust 开发太难了 Low code Rust Rust 在系统编程已经取得了巨大成功 培养更广泛的 Rust 开发 围绕 LLM 生态封装相应的 Rust 框 架,让开发者能够使用简单的 Rust 写 应用 如何用 Rust 实现的 构建和部署 AI 相关工作流的 serverless 平台 • 上传 Rust function ,平台负责将 Rust 编译成 Wasm0 码力 | 36 页 | 38.31 MB | 1 年前3WebAssembly 简介 - 陈思衡
第三届中国Rust开发者大会 WebAssembly 简介 WebAssembly(简称 Wasm)是一种新的编译目标,帮助在 web 中运行高性能应用。它是一种低级语言,设计为编 译器目标,以在 web 浏览器中高效运行。 WebAssembly 介绍 WebAssembly 代码可以以接近原生的速度 运行,且具有很小的二进制大小和快速加 载速度。 # 高性能 WebAssembly 还会加入更多系统接口,为 WASM 提供更广泛的系统访问能力。 WebAssembly 介绍 Photo / image / chart WASI 的本质就是一套 host 提供的 function。 与开发者自行提供的 host function 相比, WASI 在 Rust 被内置在 std 中。 WASI 实例 WASI 简介 WASM 的应用场景 WASM 使用场景和问题 由于 WASI0 码力 | 24 页 | 773.46 KB | 1 年前3王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验
第三届中国Rust开发者⼤会 基于 Rust 编程语⾔构建 Amphitheatre CLI / Desktop / Server 的全平台实践经验 王宜国 - 独⽴开源软件作者 RUST CHINA CONF 2023 • 项⽬背景介绍 • 产品功能演示 • 应⽤场景概览 项⽬介绍 • 概念 • 架构设计 • 技术实现 设计与实现 ⼤纲 Amphitheatre 云开发环境(Cloud 研发流程⻓达⼗⼏个步骤:安装开发软件、配置环境、克隆代 码、开发、本地调试、提交代码、编译构建、⾃动化测试、部 署到测试环境、测试验收、合并代码到主线、部署到⽣产环 境… 研发流程繁⻓ 起因:开发者之痛 为了部署测试,不仅要学习容器化、Kubernetes,还要申请资 源安装配置各项中间件,学习成本⾼,费⼼费⼒ 复杂的基础设施 Build Test Code Deploy Release0 码力 | 34 页 | 10.81 MB | 1 年前3Comprehensive Rust(简体中文) 202412
造函数,按惯例被称为“new”。 关键点: • 引入方法时,将方法与函数进行比较会很有帮助。 – 在某种类型(例如结构体或枚举)的实例上调用方法,第一个参数将该实例表示为“self”。 – 开发者可能会选择使用方法,以便利用方法接收器语法并让方法更有条理。通过使用方法,我 们可以将所有实现代码保存在一个可预测的位置。 • 指出关键字“self”的用法,它是一种方法接收器。 – 显示它是“self: => { println!("The diary could not be opened: {err}"); } } } • 与 Option 方法相同,成功值位于 Result 方法内部,开发者必须显示提取成功值。因此,建议进行 错误检查。在绝不应出现错误的情况下,可以调用 unwrap() 或 expect() 方法,这也是一种开发 者意向信号。 • Result documentation Blaze 的开源变体(在 google3 中使用)。 • 我们计划逐渐在 Android,ChromeOS 和 Fuchsia 中采用 Bazel 进行开发。 • 对所有 Rust 操作系统开发者而言,了解类似 Bazel 的构建规都很有用。 • 趣味小知识:《星际迷航》中的数据是 Soong 类型的 Android。 188 33.1 Rust 二进制文件 让我们从一个简单的应用程序开始。在0 码力 | 359 页 | 1.33 MB | 10 月前3
共 43 条
- 1
- 2
- 3
- 4
- 5