NativeLink 是什么?
NativeLink 是一个高效、高性能的构建缓存和远程执行系统,可加速软件编译和测试,同时降低基础设施成本。它通过智能缓存构建产物和在多台机器上分配任务,优化各种规模项目的构建过程。
NativeLink 在生产环境中备受信赖,能够降低成本并缩短开发者迭代时间。它为客户每月处理超过十亿次请求,其中包括三星等大型企业。
🔑 主要特性
-
高级构建缓存:
- 存储并重用未更改组件的先前构建步骤结果
- 显著缩短构建时间,尤其是对于增量更改
-
高效远程执行:
- 在机器网络中分配构建和测试任务
- 并行处理工作负载,加快完成速度
- 利用远程资源分担本地机器的计算负担
- 通过统一、受控的构建环境确保一致性
NativeLink 与使用远程执行协议的构建工具(如Bazel、Buck2、Goma和Reclient)无缝集成。它支持基于Unix的操作系统和Windows,确保在不同开发环境中的广泛兼容性。
🚀 快速入门
开始使用时,您可以将NativeLink部署为Docker镜像(如下所示)或使用我们的云托管解决方案NativeLink Cloud。对于个人、开源项目和云生产环境,它是免费的,并支持无限团队成员。
以下设置是生产级安装。有关如何使用Bazel、Cargo和Nix从源代码构建的说明,请参阅贡献文档。
📦 预构建镜像
启动速度快,但目前仅限于x86_64
系统。查看容器注册表了解所有镜像标签,以及贡献文档了解如何自行构建镜像。
Linux x86_64
curl -O \
https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json
# 查看 https://github.com/TraceMachina/nativelink/pkgs/container/nativelink
# 找到最新标签
docker run \
-v $(pwd)/basic_cas.json:/config \
-p 50051:50051 \
ghcr.io/tracemachina/nativelink:v0.5.1 \
config
Windows x86_64
# 下载配置文件
Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json" `
-OutFile "basic_cas.json"
# 运行Docker容器
# 注意:如果脚本不是在包含basic_cas.json的目录中运行,请调整路径
docker run `
-v ${PWD}/basic_cas.json:/config `
-p 50051:50051 `
ghcr.io/tracemachina/nativelink:v0.5.1 `
config
❄️ 使用Nix的原始可执行文件
由于从源代码构建,速度较慢,但更灵活且支持MacOS。不支持原生Windows,但在WSL2中可用。
确保您的Nix版本较新且支持flakes。例如,通过下一代nix安装程序安装。
[!注意] 为MacOS构建的可执行文件与Nix的库动态链接,在没有这些库的系统上无法运行。
Linux、MacOS、WSL2
curl -O \
https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json
nix run github:TraceMachina/nativelink ./basic_cas.json
更多信息请参阅贡献文档。
✍️ 贡献者
🤝 贡献
访问我们的贡献指南,了解如何为NativeLink做出贡献。我们欢迎各种技能水平和背景的开发者的贡献!
📊 统计
📜 许可证
版权所有 2020–2024 Trace Machina, Inc.
根据Apache 2.0许可证授权,SPDX标识符为Apache-2.0
。