015. 与 Meta 工程师 Nero 聊 Buck2 与 Rust 构建

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 本期的嘉宾是 Meta 的工程师 Nero,他是 Buck2 的核心开发者之一。我们将讨论 Rust 在 Meta 的应用、Buck2 的设计理念和特点以及 Buck2 是如何加速 Rust 的构建。 背景补充:Buck2 是 Meta 开源的一个构建系统,可以类比 Bazel。它的设计理念是提供更快、更可靠的构建体验,同时支持大规模的代码库。Buck2 的特点包括增量构建、并行执行和可扩展性,使其适用于大型项目和复杂的构建需求。 链接 * Buck2 相关链接 * Discord 用户群 * facebookexperimental/autocargo : Translate Buck targets to Cargo.toml * facebookincubator/reindeer : Transform Rust Cargo dependencies into generated Buck build rules * Tutorial: Your First Buck2 Application | Buck2 * Jon Gjengset - YouTube: The streams are intended for users who are already somewhat familiar with Rust, but who want to see something larger and more involved be built. * Sapling: Source control that’s user-friendly and scalable * bazelbuild/starlark 是一种用于配置的语言。它是为 Bazel 构建系统设计的,但也可能对其他项目有用。Starlark 是 Python 的一种方言。与 Python 一样,它是一种动态类型语言,具有高级数据类型、具有词法作用域的一级函数和垃圾回收功能。 * r2cn-dev/buck2-rust-third-party: A collection of BUCK files about rust crate * David Tolnay 的 buck2-rustc-bootstrap 项目,用 buck2 实现 Rust 编译器自身的构建。 * Cold build without cache: 32% faster * Incremental: 1.625s vs 2.6s * buck2 本身构建时间对比 * Cargo build: 2min20s * buck2 build: 1min26s 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

59分钟
99+
5个月前

014. 既生 Rust,何生 Zig

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 Rust 和 Zig 是新时代系统语言的两个极端,一个完全不信任程序员,编译器内置了各种检查和限制,另一个则完全信任程序员,允许你在编译时做任何事情。Zig 的设计理念是让程序员在性能和安全性之间找到一个平衡点。它提供了更好的错误处理机制和类型系统,避免了 C 语言中的许多常见错误。 这是一期没有嘉宾,是由主播使用 Google NotebookLM 根据 Zig 文档生成,NotebookLM 把 Zig 的特点总结的十分到位:控制性。从单行注释,到任意精度的数字类型、多种指针类型,再到杀手锏 feature 编译时运行,而这个特性无疑对写出高性能程序大有裨益。 希望通过本期节目让更多人了解 Zig 语言,尤其是它的编译时运行特性。Zig 的编译时运行允许你在编译时执行代码,这意味着你可以在编译时计算常量、生成代码或进行其他操作。这种特性使得 Zig 在性能和灵活性方面具有很大的优势。 链接 * Rust 与 Zig 关于安全的争论 * ghostty-org/ghostty 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

19分钟
99+
5个月前

013. 跨行程序员 driftluo 的 Rust 历程

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 本期我们很荣幸邀请到了一位跨行程序员 drift luo 作为嘉宾。他本科专业是会计,但在工作过程中因项目需求和个人兴趣,逐渐转向了编程领域。特别引人注目的是,为了解决 Python 内存占用过高的问题,他在 2017 年就开始深入研究 Rust 语言。要知道,那时的 Rust 还处于相对早期阶段,不仅生态系统远不如今天完善,连最基础的 borrow checker 机制都尚未完全成熟。作为一个非计算机专业出身的开发者,能在那个时期就开始钻研 Rust,着实令人惊叹。 时间线 * 02:04 职业选择与成长:从大学会计专业到外包公司的挑战与机遇 * 06:06 从产品工程师到程序员:自学VBA的启示与思考 * 12:12 从零开始的面向对象之旅:一本让你理解英文原著的Python入门书 * 18:19 部署 Python 程序时的挑战与解决方案:内存消耗、依赖环境和性能问题 * 24:24 RUST 编程语言的借用检查和内存占用问题的解决方法探究 * 30:33 一次离职后的启示:在 Rust 语言的公司中找到新的工作机会 * 36:38 从零开始的 Rust 项目:探索语言、库和生态的变化过程 * 42:45 如何在短时间内开发出稳定的功能?——一个开发者在紧张项目中的挑战 * 48:53 如何在热点路径上选择适合的锁类型?——探讨同步锁和异步锁的性能开销 * 54:59 poll future 一下,他没响应,任务就丢了?如何处理这种情况? * 01:01:06 编程之路:拥抱编辑器检查,适应编程过程中的挑战 * 01:07:13 Rust 社区的发展趋势与挑战 链接 * 嘉宾个人信息 * 博客: https://www.driftluo.com * https://github.com/driftluo * 学习经历:江西财经大学现经管学院,会计系 * 工作经历:用友、外包、秘猿科技 * 2017 年末随笔,嘉宾就是因为这个文章获得了秘猿科技的面试机会 * 禁止使用 async function 去实现 poll function * 在异步环境下的共享状态 * 以太网络出现漏洞,以太坊边召开开发者大会边修复。所有基于 Go 语言编写的以太坊 1.4.11 版本客户端出现内存溢出错误,并阻止了进一步挖矿,但 Rust 编写的 Parity 客户端并未受此次攻击的影响。 * 好物推荐 * 置身事内,(豆瓣:9.1 分) * 病人家属,请来一下, (豆瓣:8.6 分) * 医生,你在想什么,(豆瓣:8.2 分) 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

73分钟
99+
9个月前

010. 特别节目:闲话 Zig,另一个 Better C 的语言

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 在新一代的 Better C 里,Rust、Zig 是经常被对比的两个语言,之前在第五期的节目中聊到过,本期继续讨论这个语言。 本期内容来自 ZigCC 的 2024 New Year Party 线上会议的片段,主要讨论内容: * Zig 与 C/CPP/Rust 的对比,包括编译速度、大小、抽象程度等 * Zig 可发力的方向。目前看,图像处理(GPU)、嵌入式、游戏是几个比较有潜力的方向 链接 * What is Zig's Comptime? * webui-dev/zig-webui: Use any web browser as GUI, with Zig in the backend and HTML5 in the frontend. * EmbarkStudios/rust-gpu:Making Rust a first-class language and ecosystem for GPU shaders * Rust-GPU/Rust-CUDA:Ecosystem of libraries and tools for writing and executing fast GPU code fully in Rust. * Bevy Engine:A refreshingly simple data-driven game engine built in Rust. Free and Open Source Forever! * Announcing `async fn` and return-position `impl Trait` in traits * Jonathan Blow 2017–present:Jai programming language, untitled Sokoban game, and Braid, Anniversary Edition * Is Rust C++-fast? Benchmarking System Languages on Everyday Routines * Open Computing Language OpenCL | NVIDIA Developer * Single compilation unit * Zig's New Relationship with LLVM | Loris Cro's Blog * Assorted thoughts on Zig and Rust (2020) | Hacker News * Zig Build System Internals – Mitchell Hashimoto * Zig roadmap 2024: incremental compilation * andrewrk/ffmpeg: ffmpeg with the build system replaced by zig * dtolnay/cxx: Safe interop between Rust and C++ * Plugins in Rust: The Technologies | NullDeref * make the main zig executable no longer depend on LLVM, LLD, and Clang libraries * Tauri or Flutter for RustDesk desktop? · rustdesk/rustdesk · Discussion #533 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

116分钟
1k+
1年前

009. 卡比卡比的开源贡献之旅

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 本期嘉宾是卡比卡比,虽然他毕业不到三年,但已经成多个开源项目的重度参与者,而且已经是 Apache Arrow 的 PMC,他是怎么做得到?他的开源经历,对我们能有什么启发?这些问题都可以在本期节目中找到答案。 时间线 * 00:00:29 嘉宾自我介绍 * 00:02:30 工作经历 * 00:08:03 数据库查询优化器介绍 * 00:27:38 Apache Arrow/DataFusion 贡献经历 * 01:09:07 如何参与开源项目 * 01:16:38 嘉宾分享 AI 分段 * 00:02:06 从校园开发到实际编程:我的职业转型经历 * 00:07:04 数据库优化器:掌握核心代码为未来工作打下坚实基础 * 00:14:07 工程实践中的难点与解决方案:Code freeze * 00:21:14 "基于 Apache Doris 商业开发:开源社区协作的问题" * 00:28:16 DataFusion 瑾项目社区友好,让我们能够持续参与开源项目 * 00:35:24 Rust语言:开源之路的合适选择 * 00:42:29 探索学习路径:为什么 Rust 实现上的问题总是难以解决? * 00:49:32 Rust 本身的设计存在缺陷,需要深入探讨其设计原因和影响 * 00:56:36 DataFusion 的定位与优势–高效的执行引擎 * 01:03:46 开源贡献:论迹不论心 * 01:10:51 要寻找自己擅长的领域并长期为项目做出贡献。 链接 * 嘉宾个人信息 * https://github.com/jackwener * 邮箱:jakevingoo#gmail.com * 学习经历:华中科技大学本科毕业 * 工作经历:目前在 SelectDB 做优化器,之前在 NebulaGraph /字节工作过,以前在抖音/微软/腾讯实习过 * DataFusion is a very fast, extensible query engine for building high-quality data-centric systems in Rust * Apache Arrow is a cross-language development platform for in-memory analytics * Apache Doris is a new-generation open-source real-time data warehouse based on MPP architecture * Apache Arrow Ballista 基于 DataFusion 实现的分布式查询引擎 * CMU 15445 课程 * MIT 6.5840 课程 * pingcap/talent-plan * 优化器 * Cascades * Columbia 论文 * Apache Impala * 贪婪的多巴胺 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

77分钟
99+
1年前

008. 与小福聊聊编译器那些事

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 本期嘉宾是韦清福,网络 ID:开心的小福。嘉宾之前在字节跳动实习期间从事过 JVM 的研发,现在英伟达从事编译器后端工作,这一期就和他来聊一聊编译器,揭开 compiler 的神秘面纱。 学习经历 * 本科:电子科技大学 * 研究生:中科院计算所硕士—编译优化方向 时间线 * 00:00:43 嘉宾自我介绍 * 00:02:50 为什么选择编译器这条路 * 00:09:47 编译器入门经历 * 00:21:01 读研期间是否推荐选择编译器? * 00:25:39 编译器开发协作模式 * 00:47:10 Zig 使用 LLVM 的方式 * 01:01:58 分享 链接 * 编译原理 (豆瓣),俗称“龙书” * RISC-V - Wikipedia * CUDA 是 NVIDIA 发明的一种并行计算平台和编程模型。它通过利用图形处理器 (GPU) 的处理能力,可大幅提升计算性能。 * Iterating over def-use & use-def chains * LLVM Bitcode File Format — LLVM 17.0.0git documentation * Comparing clang to other open source compilers * Zig 中 use-def 的问题: Optimize access of array member in a structure 嘉宾分享 * 编译器相关书籍 * 入门:Compiler construction * 初级:Engineering a compiler * 中级:现代体系结构的优化编译器 * 高级:LLVM 源码,编译方向论文 * 体系结构 * CSAPP * 计算机组成与设计:软硬件方法 * 计算机体系结构基础(胡伟武) * Modern Processor Design: Fundamentals of Superscalar Processors * 计算机系统结构-量化研究方法、各种论文 应用程序员学习完 CSAPP 即可 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

67分钟
99+
2年前

007. 于康的 Rust 贡献之旅

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 本期嘉宾是具有 10 年工作经验的于康,工作经历 EDA,DJI 大疆,目前在微软。 在 2021 年开始给 Rust compiler 贡献代码,到目前为止,已经有 70 多个。本期就来聊聊他的贡献经历。 时间线 * 00:02:23 接触 Rust 的初印象 * 00:11:13 学习 Rust 经历 * 00:24:35 社区主导语言的弊端 * 00:28:24 给 Rust 做贡献的经历 * 00:52:14 印象最深的两个 PR * 01:02:52 Rust Foundation 基金申请经历 * 01:09:23 在微软的远程办公经历 * 01:11:50 好物分享 链接 * 嘉宾社交信息 * 博客:程序员的喵 * Twitter:@cyukang * GitHub:chenyukang * Essentials of Programming Languages: 3rd edition * When is OOP better suited for? - Stack Overflow * Revisiting a 'smaller Rust' - Without boats, dreams dry up * Rust in 2023 * Next Rust Compiler * Avoid infinite loop in function arguments checking by chenyukang · #100502 * Improve unexpected close and mismatch delimiter hint in TokenTreesReader by chenyukang · #104012 * 为 Rust 做贡献的经验分享 | 程序员的喵 * Rust Foundation - Introducing Our Newest Project Grantees * Rust Atomics and Locks: Low-Level Concurrency in Practice * 纳瓦尔宝典 (豆瓣) * AList:🗂️ A file list program that supports multiple storage, powered by Gin and Solidjs. 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

75分钟
99+
2年前

006. DatenLord CTO 施继成的 Rust 修炼之道

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 概要 本期嘉宾是施继成,达坦科技(DatenLord)联合创始人兼 CTO,Rust 社区活跃用户,在 B 站上有 Rust for Linux is Coming、关于 Rust io_uring 异步接口实现的思考、开源分 布式存储技术等技术分享。 本期话题都聊得比较深入,因此时间较长,听众可以按照时间线选择收听。 I hope you guys enjoy listening to this as much as I enjoy making it! 时间线 * 00:00:27 嘉宾自我介绍 * 00:03:28 DatenLord 公司简介 & 为什么选择 Rust * 00:14:55 Rust 的特性是独创的嘛? * 00:18:42 嘉宾学习 Rust 的过程 & 对初学者的建议 * 00:25:37 异步 Runtime 的统一接口 * 00:34:11 团队内的 Rust 编码规范如何制定? * 00:43:25 Rust 未来发展方向 * 00:47:23 Rust for Kernel 的难度、意义 * 01:08:48 DatenLord 是一家什么样的公司 * 01:25:02 好物分享 链接 * 统一的异步 runtime 讨论 * Async crate comparison - Rust Community Wiki * Abstraction layer for async runtimes : rust * Is async-std a second class citizen? : rust * Rust 编码规范 V 1.0 beta * Rust in the Linux Kernel - The New Stack * 好物分享 * Happy Hacking Keyboard - Wikipedia * HHKB 这种键盘真的好用吗? - 知乎 * DatenLord | Join us * DatenLord 微信公众号 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

93分钟
99+
2年前

005. 与 LemonHX 畅聊新一代编程语言 Zig

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 概要 本期嘉宾是张润哲(柠檬,LemonHX),另一位 Rust 的干饭人,零零后,后浪程序员。 今天的话题是 Zig ⚡,一门新时代的系统语言。不得不承认,C/C++ 的“替代者”隔三差五就能上 hacker news 榜首,Go/Rust/D/Carbon 等等不一而足,在这之中,Zig 是怎样一种存在?它的特点是什么?它是 Rust 的竞争对手嘛? 时间线 * 00:00:26 嘉宾自我介绍 * 00:01:56 接触 Rust/Zig 语言的动机 * 00:07:00 Rust VS Zig 语言定位 * 00:14:21 Zig 语言特点 * 00:23:55 编译期执行 comptime * 00:29:40 zig cc ,比 clang 更好用的编译器 * 00:39:41 Zig 未来发展方向 * 00:53:48 Zig killer app: bun.js * 00:59:54 Zig 其他有意思的项目介绍 * 01:03:54 Zig 学习方式推荐 * 01:05:21 推荐环节 Show Notes * 个人介绍 * 博客、Twitter、GitHub * RustChinaConf2020《Rust游戏引擎开发》 * Why Zig When There is Already C++, D, and Rust? * What is a allocator anyway? : Zig * 在社区内,Rust 与 Zig 关于安全问题的争论 * for<'a> T<'a> ,Higher-Rank Trait Bounds * 使用 comptime 实现的 LinkedList 示例代码 * D Programming Language * `zig cc`: a Powerful Drop-In Replacement for GCC/Clang * Zig Makes Rust Cross-compilation Just Work · Um, actually… * What is Zig's “Colorblind” Async/Await? * A first look at Bun: is it really 3x faster than Node.js and Deno? * kprotty/zap: An asynchronous runtime with a focus on performance and resource efficiency * andrewrk/HellOS: "hello world" x86 kernel example * 没有装箱的 monad:https://godbolt.org/z/bo3Mvdr7b * Zig 学习网站推荐 * Getting Started | ziglearn.org * Zig in 30 minutes · GitHub * Zig 中文社区 * TG:https://t.me/ZigChinese * 微信群:https://ask.ziglang.cc/weixin * QQ:930564004 * Starcoin * lemon5: 柠檬五码是一款自由的简单易学的开源音形输入法 * wenshudb: 文书 DB 是一个柠檬在制作柠檬五码的时候的副产物 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

72分钟
1k+
3年前

004. 与迟先生聊 Rust 与数据库系统

RustTalk

欢迎听众打赏支持,您的支持是我不断创作的动力🍻 概要 本期嘉宾是迟策(aka 迟先生),虽然今年才刚大学毕业,但早已小有名气。在校内,他是交大 18 级计算机专业成绩第一名,曾因其对交大教学的评论,上过知乎热榜;在 Rust 社区内,是多个明星开源项目(如 TiKV、risinglight)的维护者与开发者。 作为 Rust 忠实粉丝,迟先生对 Rust 语言有很深的造诣,创造了多个开源项目,是 Rust 社区内不可多得的教学素材;在数据库方向,迟先生参加过 PingCAP、字节跳动、 Singularity Data 等公司的实习,涉及存储、计算、SQL 等多个模块,更是开源了一个用于教学目的的 OLAP 数据库。不得不说,迟先生太成功了。 今年夏天,迟先生将去 CMU 深造,这里预祝他学业顺利,继续成功下去! 时间线 * 00:00:32 嘉宾自我介绍 * 00:04:39 Rust 2018 版次相比 2015 的改进 * 00:07:38 Rust 与 C++ 的对比 * 00:09:50 把生命周期引入类型系统是否是明智的选择? * 00:17:06 用 Rust 做类型体操 * 00:24:32 Rust 未来发展的展望 * 00:32:39 嘉宾的项目介绍 * 00:35:19 嘉宾选择数据库方向的原因 * 00:49:12 risingwave 项目介绍 * 00:57:23 推荐环节 Show Notes * 个人介绍 * 网名:Alex Chi、迟策、迟先生 * 网络 ID:skyzh * 博客:https://skyzh.dev/ * Twitter:https://twitter.com/iskyzh * GitHub: https://github.com/skyzh * 上知乎热榜后的总结文章:与恶龙斗,其乐无穷 * 光线追踪渲染器:raytracer.rs * Non-lexical lifetimes,对应的 rfc:2094-nll * 另一个 Rust 借用检查器(borrow checker):rust-lang/polonius * GAT:1598-generic_associated_types * 用 Rust 做类型体操 * GitHub:skyzh/type-exercise-in-rust * 博客介绍:上篇、中篇、下篇 * Volcano-An Extensible and Parallel Query Evaluation System(PDF) * singularity-data/risingwave: RisingWave: the next-generation streaming database in the cloud. * 对 Rust 语言的分析 by 王垠 * tikv/agatedb: A persistent key-value storage in rust. * risinglightdb/risinglight: An OLAP database system for educational purpose * singularity-data/risingwave: RisingWave: the next-generation streaming database in the cloud. * FPGA:Field-programmable gate array - Wikipedia * TiKV | B-Tree vs LSM-Tree * How Do SSDs Work? - ExtremeTech * Remote Compactions in RocksDB-Cloud | Rockset * Building a Cloud Database from Scratch: Why We Moved from C++ to Rust * 嘉宾推荐: * Nintendo Switch(OLED版本) * 塞尔达传说 旷野之息 - 维基百科 收听方式 * 国内:小宇宙、微信公众号 * 国外:Spotify for Podcasters、Apple Podcasts、RSS 反馈 ✉️ * 发现内容错误或链接失效?欢迎提交 PR * 对节目有想法或建议?欢迎来信交流:[email protected]

59分钟
1k+
3年前
EarsOnMe

加入我们的 Discord

与播客爱好者一起交流

立即加入

扫描微信二维码

添加微信好友,获取更多播客资讯

微信二维码

播放列表

自动播放下一个

播放列表还是空的

去找些喜欢的节目添加进来吧