The ML Platform Behind Uber's AI
Michelangelo AI: Uber's end-to-end machine learning platform.
Translation pending
When agents write your code, your build system is the bottleneck. NativeLink is the high-performance remote build cache and execution platform for Bazel and beyond.
Developer toolsRust · MDXGitHub @TraceMachinaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
NativeLink is a Nix-powered, open source, high-performance build cache and remote execution server, compatible with Bazel, Soong, Pants, Buck2, Reclient, and other RE-compatible build systems. It offers drastically faster builds, reduced test flakiness, and support for specialized hardware.
Loading the full README.
Read the full README ↗NativeLink is an efficient, high-performance build cache and remote execution system that accelerates software compilation and testing while reducing infrastructure costs. It optimizes build processes for projects of all sizes by intelligently caching build artifacts and distributing tasks across multiple machines.
NativeLink is trusted in production environments to reduce costs and developer iteration times--handling over billions of requests per month for its customers, including large corporations such as Samsung.
NativeLink is built to be read by agents as well as people:
llms.txt, llms-small.txt and
llms-full.txt at the repository root are the website, the
blog and the documentation at three sizes; they are the files served at
nativelink.com/llms.txt. The docs serve
their own three at docs.nativelink.com/llms.txt,
which the root copies fold in.AGENTS.md is the map of the code for an agent changing it..claude/skills/ carries installable skills, including
migrate-to-bazelmod.CONTRIBUTING.md.The full list is at nativelink.com/agents.
Advanced Build Cache:
Efficient Remote Execution:
NativeLink seamlessly integrates with build tools that use the Remote Execution protocol, such as Bazel, Buck2, Goma, and Siso. CMake projects work too via recc. See Build CMake projects with NativeLink. It supports Unix-based operating systems and Windows, ensuring broad compatibility across different development environments.
To start, you can deploy NativeLink as a Docker image (as shown below). The setups below are production-grade installations. See the contribution docs for instructions on how to build from source with Bazel, Cargo, and Nix.
You can find a few example deployments in the Docs.
Fast to spin up, but currently limited to x86_64 systems. See the container
registry
for all image tags and the contribution docs
for how to build the images yourself.
Linux x86_64
NATIVELINK_VERSION=1.8.3
curl -fsSLO \
"https://raw.githubusercontent.com/TraceMachina/nativelink/${NATIVELINK_VERSION}/nativelink-config/examples/basic_cas.json5"
docker run --rm -it \
-v "$(pwd)/basic_cas.json5:/config:ro" \
-p 50051:50051 \
"ghcr.io/tracemachina/nativelink:${NATIVELINK_VERSION}" \
/config
Windows x86_64
# Download the configuration file
Invoke-WebRequest `
-Uri "https://raw.githubusercontent.com/TraceMachina/nativelink/v1.8.3/nativelink-config/examples/basic_cas.json5" `
-OutFile "basic_cas.json5"
# Run the Docker container
# Note: Adjust the path if the script is not run from the directory containing basic_cas.json5
docker run `
-v ${PWD}/basic_cas.json5:/config `
-p 50051:50051 `
ghcr.io/tracemachina/nativelink:v1.8.3 `
config
Slower, since it's built from source, but more flexible and supports MacOS. Doesn't support native Windows, but works in WSL2.
Make sure your Nix version is recent and supports flakes. For instance, install it via the next-gen nix installer.
[!CAUTION] Executables built for MacOS are dynamically linked against libraries from Nix and won't work on systems that don't have these libraries present.
This is the beginning of the README. Read the rest at the original. Read the full README ↗