 KCL: Rust 在编译器领域的实践与探索第三届中国Rust开发者大会 KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 Agenda 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 01 KusionStack 与 KCL KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? 重写的收益 稳定性和性能提升 IDE:用户体验提升 源于 Rust 强大的编译检查和错误 处理方式, 更少的 Bug 稳定性提升 端到端编译执行性能提升了 66% 66 % 20 & 40 前端解析器性能提升 20倍 中端语义分析器性能提升40倍 稳定性和性能的巨大提升 50 % 语言编译器编译过程平均内存使用 量变为原来 Python 版本的一半 01 02 03 04 Case1:0 码力 | 25 页 | 3.50 MB | 1 年前3 KCL: Rust 在编译器领域的实践与探索第三届中国Rust开发者大会 KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 Agenda 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 01 KusionStack 与 KCL KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? 重写的收益 稳定性和性能提升 IDE:用户体验提升 源于 Rust 强大的编译检查和错误 处理方式, 更少的 Bug 稳定性提升 端到端编译执行性能提升了 66% 66 % 20 & 40 前端解析器性能提升 20倍 中端语义分析器性能提升40倍 稳定性和性能的巨大提升 50 % 语言编译器编译过程平均内存使用 量变为原来 Python 版本的一半 01 02 03 04 Case1:0 码力 | 25 页 | 3.50 MB | 1 年前3
 Rust在Substrate 开发框架中的使用开发语言:Java, Ruby ● 框架:Spring,Rails ● 数据库:Postgres, MySQL ● 自动化测试 ● CI / CD ● 部署云服务:AWS,阿里云 web 2.0 开发 前端:HTML, Javascript, CSS ● React ● Vue ● Angular 中心应用的问题: ● 难以保证不作恶 ● 用户隐私问题 ● 代码安全 ● 隐藏成本高 ● Gas 费用 ● 沙盒环境 ● 链上存储租赁 ● 状态回滚 Smart contract Vs application chain app chain特点: ● Runtime 安全有开发者完全负责 ● 获取链上所有状态 ● 高度定制化,包括共识,通证,交易 方式 一个开源、模块化、可扩展的区块链开 发框架,涵盖了区块链的核心组件: ● Database layer ● P2P0 码力 | 37 页 | 967.22 KB | 1 年前3 Rust在Substrate 开发框架中的使用开发语言:Java, Ruby ● 框架:Spring,Rails ● 数据库:Postgres, MySQL ● 自动化测试 ● CI / CD ● 部署云服务:AWS,阿里云 web 2.0 开发 前端:HTML, Javascript, CSS ● React ● Vue ● Angular 中心应用的问题: ● 难以保证不作恶 ● 用户隐私问题 ● 代码安全 ● 隐藏成本高 ● Gas 费用 ● 沙盒环境 ● 链上存储租赁 ● 状态回滚 Smart contract Vs application chain app chain特点: ● Runtime 安全有开发者完全负责 ● 获取链上所有状态 ● 高度定制化,包括共识,通证,交易 方式 一个开源、模块化、可扩展的区块链开 发框架,涵盖了区块链的核心组件: ● Database layer ● P2P0 码力 | 37 页 | 967.22 KB | 1 年前3
 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 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 年前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 年前3
 Rust 程序设计语言简体中文版底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的工 具 具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测试 和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒绝 编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间集 中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • Rust Language Server 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功 能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的工 具 具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测试 和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒绝 编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间集 中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • Rust Language Server 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功 能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 语言学习笔记本身可用于操作系统的开发。 开发者需要自己去定义路径,定义 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 年前3 Rust 语言学习笔记本身可用于操作系统的开发。 开发者需要自己去定义路径,定义 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 年前3
 Rust 程序设计语言 简体中文版 1.85.0底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已被证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的 工具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测 试和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒 绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间 集中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • rust-analyzer 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过 Rust0 码力 | 562 页 | 3.23 MB | 24 天前3 Rust 程序设计语言 简体中文版 1.85.0底层的控制往往是难以兼得 的;而 Rust 则试图挑战这一矛盾。通过平衡强大的技术能力与优秀的开发者体验,Rust 为你 提供了控制底层细节(如内存使用)的选项,而无需承受通常与此类控制相关的所有繁琐细 节。 Rust 适合哪些人 Rust 因多种原因适合许多人。让我们看看几个最重要的群体。 开发者团队 Rust 已被证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的 工具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测 试和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒 绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间 集中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • rust-analyzer 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。 通过使用 Rust 生态系统中丰富的工具,开发者在编写系统级代码时可以更加高效。 学生 Rust 适合学生群体,也适合有兴趣学习系统概念的人。许多人通过 Rust0 码力 | 562 页 | 3.23 MB | 24 天前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应用和转型 - 陈昱衡第三届中国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 年前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 年前3
 WebAssembly 简介 - 陈思衡第三届中国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 WebAssembly 简介 - 陈思衡第三届中国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
共 43 条
- 1
- 2
- 3
- 4
- 5













