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

欢迎听众打赏支持,您的支持是我不断创作的动力🍻
本期的嘉宾是 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
收听方式
