KCL: Rust 在编译器领域的实践与探索KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 01 KusionStack 与 KCL KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? KusionStack 是开源的云原生可编程技术栈! 1. 围绕现代应用程序交付以及使用 OCI 镜像对配置和策略进 行编码和统一 2. 组织应用 可以用统一的组织和操作界面定义应用交付生命周期,充分 利用Kubernetes和云的混合能力,通过端到端的交付工作 流程,真正实现集中定义、随处交付。 KusionStack 架构 • KCL:面向应用研发者的 配置策略专用高级编程语 言,及其协议组,工具链及 IDE 插件 • Kusion:运维引擎、工具 链、服务层,IDE 工作空间 及社区技术集成套件 • Konfig:应用配置及基础 模型共享仓库,及面向 GitOps Language Server KCL Compiler KCL Package Manager 02 用 Rust 重写 KCL Python 代码翻译 栈式虚拟机 Rust 编译器 KCL 编译器架构升级 Source Code AST LLVM IR Native/WASM Source Code AST Bit code VM Source Code Python code0 码力 | 25 页 | 3.50 MB | 1 年前3
Rust分布式账务系统 - 胡宇东京 班加罗尔 阿姆斯特丹 西安 马来西亚 币种 50+ 国家 130+ 办公地点 19 1300+ 员工 提供高效,低成本的数字银行服务 关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 稳定的底层 API ● 灵活的顶层 API ● 树状结构 ● 聚合查询 ● 正确性:内存安全,线程安全 ● 可靠性: Raft 共识算法 raft-rs ● 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 月可以熟练转型使用 Rust Rust 与原有技术栈的融合 ● Kotlin : 偏业务,适合快速迭代 ● Rust :偏基础架构,适合精心打磨 ● gRPC :跨语言跨平台通讯 心路历程 真刀实枪 – 开发调试部署 IDE JetBrains + Rust 插件 Gitlab CI/CD 心路历程 真刀实枪 – 文档工具 文档生成 CI/CD git page 作为文档 心路历程0 码力 | 27 页 | 12.60 MB | 1 年前3
Rust OS 开源操作系统训练营的教与学-0615-李明• 2022:唐洪雨《基于Rust语言的嵌入式实时操作系统RFreeRTOS的移植》 • 2022:朱懿《zCore 操作系统容器化的探索》 • 2022:米明恒《操作系统调试器VSCode插件系统架构设计与实现》 • 2023:周子琪/周毅《ArceOS在华山派CV1811H上的移植》 • 2023:齐呈祥《hypercraft 开源项目》 学习博客 http://rcore-os.cn/blog/0 码力 | 26 页 | 2.62 MB | 1 年前3
Comprehensive Rust(简体中文) 202412本身就是一个功能强大且全面的工具。它能够实现许多高级功能,包括 但不限于: * 项目/软件包结构 * 工作区 * 开发依赖和运行时依赖管理/缓存 * 构建脚本 * 全局安装 * 它还可以使用子命令插件(例如 cargo clippy)进行扩展。 – 详情请参阅 官方 Cargo Book 2.2 本培训中的代码示例 在本培训中,我们将主要通过示例探索 Rust 语言,这些示例可以通过浏览器执行。这能大大简化配置过 是一门新的编程语言,它的 1.0 版本于 2015 年发布: • Rust 是一门静态编译语言,其功能定位与 C++ 相似 – rustc 使用 LLVM 作为它的后端。 • Rust 支持多种平台和架构: – x86、ARM、WebAssembly...... – Linux、Mac、Windows...... • Rust 被广泛用于各种设备中: – 固件和引导程序, – 智能显示器, – 两种变体。 rust_ffi 生成一个可由 cc 模块使用的 Rust C 库,并提供静态和共享两种变体。 rust_proc_macro 生成“proc-macro”Rust 库。这些 宏与编译器插件类似。 rust_test 生成使用标准 Rust 测试框架的 Rust 测试二进制文件。 rust_fuzz 生成使用 libfuzzer 的 Rust 模 糊测试二进制文件。 rust_protobuf0 码力 | 359 页 | 1.33 MB | 11 月前3
Rust 语言学习笔记不链接自带的 std 库。 plugin - 加载编译器插件,一般用于加载自定义的编译器插件库。 5.1.2.2 应用于函数的属性 main - 把这个函数作为入口函数,替代 fn main,会被入口函数(Entry Point)调用。 plugin_registrar - 编写编译器插件时用,用于定义编译器插件的入口函数。 start - 把这个函数作为入口函数(Entry } 其中,cfg 可接受的条件有 debug_assertions - 若没有开启编译优化时就会成立。 target_arch = "..." - 目标平台的 CPU 架构,包括但不限于 x86, x86_64, mips, powerpc, arm 或 aarch64。 target_endian = "..." - 目标平台的大小端,包括 big 和 little。0 码力 | 117 页 | 2.24 MB | 1 年前3
Hello 算法 1.1.0 Rust版2. 在 VS Code 的插件市场中搜索 python ,安装 Python Extension Pack 。 3.(可选)在命令行输入 pip install black ,安装代码格式化工具。 2. C/C++ 环境 1. Windows 系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ OpenJDK(版本需满足 > JDK 9)。 2. 在 VS Code 的插件市场中搜索 java ,安装 Extension Pack for Java 。 第 16 章 附录 hello‑algo.com 374 4. C# 环境 1. 下载并安装 .Net 8.0 。 2. 在 VS Code 的插件市场中搜索 C# Dev Kit ,安装 C# Dev Kit (配置教程)。 下载并安装 go 。 2. 在 VS Code 的插件市场中搜索 go ,安装 Go 。 3. 按快捷键 Ctrl + Shift + P 呼出命令栏,输入 go ,选择 Go: Install/Update Tools ,全部勾选并安 装即可。 6. Swift 环境 1. 下载并安装 Swift 。 2. 在 VS Code 的插件市场中搜索 swift ,安装 Swift for Visual0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版2. 在 VS Code 的插件市场中搜索 python ,安装 Python Extension Pack 。 3.(可选)在命令行输入 pip install black ,安装代码格式化工具。 2. C/C++ 环境 1. Windows 系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ OpenJDK(版本需满足 > JDK 9)。 2. 在 VS Code 的插件市场中搜索 java ,安装 Extension Pack for Java 。 第 16 章 附录 www.hello‑algo.com 373 4. C# 环境 1. 下载并安装 .Net 8.0 。 2. 在 VS Code 的插件市场中搜索 C# Dev Kit ,安装 C# Dev Kit (配置教程)。 下载并安装 go 。 2. 在 VS Code 的插件市场中搜索 go ,安装 Go 。 3. 按快捷键 Ctrl + Shift + P 呼出命令栏,输入 go ,选择 Go: Install/Update Tools ,全部勾选并安 装即可。 6. Swift 环境 1. 下载并安装 Swift 。 2. 在 VS Code 的插件市场中搜索 swift ,安装 Swift for Visual0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版2. 在 VS Code 的插件市场中搜索 python ,安装 Python Extension Pack 。 3.(可选)在命令行输入 pip install black ,安装代码格式化工具。 2. C/C++ 环境 1. Windows 系统需要安装 MinGW(配置教程);MacOS 自带 Clang ,无须安装。 2. 在 VS Code 的插件市场中搜索 c++ ,安装 C/C++ OpenJDK(版本需满足 > JDK 9)。 2. 在 VS Code 的插件市场中搜索 java ,安装 Extension Pack for Java 。 第 16 章 附录 hello‑algo.com 372 4. C# 环境 1. 下载并安装 .Net 8.0 。 2. 在 VS Code 的插件市场中搜索 C# Dev Kit ,安装 C# Dev Kit (配置教程)。 下载并安装 go 。 2. 在 VS Code 的插件市场中搜索 go ,安装 Go 。 3. 按快捷键 Ctrl + Shift + P 呼出命令栏,输入 go ,选择 Go: Install/Update Tools ,全部勾选并安 装即可。 6. Swift 环境 1. 下载并安装 Swift 。 2. 在 VS Code 的插件市场中搜索 swift ,安装 Swift for Visual0 码力 | 383 页 | 17.61 MB | 1 年前3
Rust 到底香不香?Meetup Kotlin 协程那些事儿 2020.10 / 11 GDG DevFest / 全球移动开发者峰会 Kotlin多平台在移动端应用与展望 2021.7 GDG 社区说 Kotlin 编译器插件:我们究竟在期待什么? 2021.11 / 12 GDG DevFest / Kotlin 中文开发者大会 从注解处理器 KAPT 到 符号处理器 KSP 2022.9 GDG 社区说 KLUE:统一 KLUE:统一 JS 调用 Native 函数的体验 2022.10 GDG DevFest 小猿口算 Android 项目优化实践 2023.4 GDG 社区说 如何开发一款 Kotlin 编译器插件 2023.5 Kotlin 北京 Meetup 你想知道的 Jetpack Compose 的编译器黑魔法 Rust 锈 需求背景 实现思路 Hello0 码力 | 10 页 | 484.75 KB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0i8 u8 43/562Rust 程序设计语言 简体中文版 16-bit i16 u16 32-bit i32 u32 64-bit i64 u64 128-bit i128 u128 架构相关 isize usize 每一个变体都可以是有符号或无符号的,并有一个明确的大小。有符号 和 无符号 代表数字能 否为负值,换句话说,这个数字是否有可能是负数(有符号数),或者永远为正而不需要符号 0 到 2ⁿ - 1 的数字,所以 u8 可以储存从 0 到 2⁸ - 1 的数字,也就是从 0 到 255。 另外,isize 和 usize 类型依赖运行程序的计算机架构:64 位架构上它们是 64 位的,32 位 架构上它们是 32 位的。 可以使用表格 3-2 中的任何一种形式编写数字字面值。请注意可以是多种数字类型的数字字面 值允许使用类型后缀,例如 57u8 来指定类型,同时也允许使用 用户没有你那么熟悉其结构,并且 如果模块层级过大他们可能会难以找到所需的部分。 第七章介绍了如何使用 pub 关键字将项变为公有,和如何使用 use 关键字将项引入作用域。 然而你开发时候使用的文件架构可能并不方便用户使用。你的结构可能是一个包含多个层级的 分层结构,不过这对于用户来说并不方便。这是因为想要使用被定义在很深层级中的类型的人 可能很难发现这些类型的存在。他们也可能会厌烦要使用 use0 码力 | 562 页 | 3.23 MB | 1 月前3
共 26 条
- 1
- 2
- 3













