{"id":13671831,"url":"https://github.com/TraceMachina/nativelink","last_synced_at":"2025-04-27T18:31:49.085Z","repository":{"id":37078021,"uuid":"324254942","full_name":"TraceMachina/nativelink","owner":"TraceMachina","description":"NativeLink is an open source high-performance build cache and remote execution server, compatible with Bazel, Pants, Buck2, Reclient, and other RBE-compatible build systems. It offers drastically faster builds, reduced test flakiness, and support for specialized hardware.","archived":false,"fork":false,"pushed_at":"2025-04-27T15:18:33.000Z","size":51704,"stargazers_count":1328,"open_issues_count":174,"forks_count":175,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-27T15:27:02.943Z","etag":null,"topics":["apache2","bazel","buck2","build-automation","build-system","chromium","ci","content-addressable-storage","free","nix","pants","re-client","remote-execution","rust","simulation"],"latest_commit_sha":null,"homepage":"https://nativelink.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TraceMachina.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-24T23:55:21.000Z","updated_at":"2025-04-27T14:22:03.000Z","dependencies_parsed_at":"2024-06-14T22:43:49.823Z","dependency_job_id":"bc5b1feb-b943-4d73-9d0b-79a3729aefdd","html_url":"https://github.com/TraceMachina/nativelink","commit_stats":{"total_commits":1009,"total_committers":35,"mean_commits":28.82857142857143,"dds":0.6432111000991081,"last_synced_commit":"b1df876fd64d60d5d1b6cb15a50e934923ab82bf"},"previous_names":["allada/turbo-cache","tracemachina/native-link","nativelink/nativelink","tracemachina/nativelink"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraceMachina%2Fnativelink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraceMachina%2Fnativelink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraceMachina%2Fnativelink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TraceMachina%2Fnativelink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TraceMachina","download_url":"https://codeload.github.com/TraceMachina/nativelink/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251187297,"owners_count":21549617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache2","bazel","buck2","build-automation","build-system","chromium","ci","content-addressable-storage","free","nix","pants","re-client","remote-execution","rust","simulation"],"created_at":"2024-08-02T09:01:19.867Z","updated_at":"2025-04-27T18:31:44.033Z","avatar_url":"https://github.com/TraceMachina.png","language":"Rust","readme":"\u003cdiv id=\"logo\" align=\"center\"\u003e\n  \u003ca href=\"https://www.nativelink.com\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"web/platform/src/assets/logo-dark.svg\" /\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"web/platform/src/assets/logo-light.svg\" /\u003e\n      \u003cimg alt=\"NativeLink\" src=\"web/platform/src/assets/logo-light.svg\" width=\"376\" height=\"100\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\n  \u003cbr /\u003e\n\u003c/div\u003e\n\n\u003cdiv id=\"description\" align=\"center\"\u003e\n  enter the shipstorm\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\n\u003cdiv id=\"badges\" align=\"center\"\u003e\n\n  [![Homepage](https://img.shields.io/badge/Homepage-8A2BE2)](https://nativelink.com)\n  [![GitHub stars](https://img.shields.io/github/stars/tracemachina/nativelink?style=social)](https://github.com/TraceMachina/nativelink)\n  [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/TraceMachina/nativelink/badge)](https://securityscorecards.dev/viewer/?uri=github.com/TraceMachina/nativelink)\n  [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8050/badge)](https://www.bestpractices.dev/projects/8050)\n  [![Slack](https://img.shields.io/badge/slack--channel-blue?logo=slack)](https://nativelink.slack.com/join/shared_invite/zt-281qk1ho0-krT7HfTUIYfQMdwflRuq7A#/shared-invite/email)\n  [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\u003c/div\u003e\n\n## What's NativeLink?\n\nNativeLink 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.\n\nNativeLink is trusted in production environments to reduce costs and developer iteration times--handling over **one billion requests** per month for its customers, including large corporations such as **Samsung**.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch?v=WLpqFuyLMUQ\"\u003e\n      \u003cimg src=\"https://trace-github-resources.s3.us-east-2.amazonaws.com/harper-90-thumbnail.webp\" alt=\"NativeLink Explained in 90 seconds\" loading=\"lazy\" width=\"480\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## 🔑 Key Features\n\n1. **Advanced Build Cache**:\n   - Stores and reuses results of previous build steps for unchanged components\n   - Significantly reduces build times, especially for incremental changes\n\n2. **Efficient Remote Execution**:\n   - Distributes build and test tasks across a network of machines\n   - Parallelizes workloads for faster completion\n   - Utilizes remote resources to offload computational burden from local machines\n   - Ensures consistency with a uniform, controlled build environment\n\nNativeLink seamlessly integrates with build tools that use the Remote Execution protocol, such as [Bazel](https://bazel.build), [Buck2](https://buck2.build), [Goma](https://chromium.googlesource.com/infra/goma/client/), and [Reclient](https://github.com/bazelbuild/reclient). It supports Unix-based operating systems and Windows, ensuring broad compatibility across different development environments.\n\n## 🚀 Quickstart\n\nTo start, you can deploy NativeLink as a Docker image (as shown below) or by using our cloud-hosted solution, [NativeLink Cloud](https://app.nativelink.com). It's **FREE** for individuals, open-source projects, and cloud production environments, with support for unlimited team members.\n\nThe setups below are **production-grade** installations. See the [contribution docs](https://nativelink.com/docs/contribute/nix/) for instructions on how to build from source with [Bazel](https://nativelink.com/docs/contribute/bazel/), [Cargo](https://nativelink.com/docs/contribute/cargo/), and [Nix](https://nativelink.com/docs/contribute/nix/).\n\nYou can find a few example deployments in the [Docs](https://nativelink.com/docs/deployment-examples/kubernetes).\n\n### 📦 Prebuilt images\n\nFast to spin up, but currently limited to `x86_64` systems. See the [container\nregistry](https://github.com/TraceMachina/nativelink/pkgs/container/nativelink)\nfor all image tags and the [contribution docs](https://nativelink.com/docs/contribute/nix)\nfor how to build the images yourself.\n\n**Linux x86_64**\n\n```bash\ncurl -O \\\n    https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json\n\n# See https://github.com/TraceMachina/nativelink/pkgs/container/nativelink\n# to find the latest tag\ndocker run \\\n    -v $(pwd)/basic_cas.json:/config \\\n    -p 50051:50051 \\\n    ghcr.io/tracemachina/nativelink:v0.5.3 \\\n    config\n```\n\n**Windows x86_64**\n\n```powershell\n# Download the configuration file\nInvoke-WebRequest `\n    -Uri \"https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json\" `\n    -OutFile \"basic_cas.json\"\n\n# Run the Docker container\n# Note: Adjust the path if the script is not run from the directory containing basic_cas.json\ndocker run `\n    -v ${PWD}/basic_cas.json:/config `\n    -p 50051:50051 `\n    ghcr.io/tracemachina/nativelink:v0.5.3 `\n    config\n```\n\n### ❄️ Raw executable with Nix\n\nSlower, since it's built from source, but more flexible and supports MacOS.\nDoesn't support native Windows, but works in WSL2.\n\nMake sure your Nix version is recent and supports flakes. For instance, install\nit via the [next-gen nix installer](https://github.com/NixOS/experimental-nix-installer).\n\n\u003e [!CAUTION]\n\u003e Executables built for MacOS are dynamically linked against libraries from Nix\n\u003e and won't work on systems that don't have these libraries present.\n\n**Linux, MacOS, WSL2**\n\n```bash\ncurl -O \\\n    https://raw.githubusercontent.com/TraceMachina/nativelink/main/nativelink-config/examples/basic_cas.json\n\nnix run github:TraceMachina/nativelink ./basic_cas.json\n```\n\nSee the [contribution docs](https://nativelink.com/docs/contribute/nix) for further information.\n\n## ✍️ Contributors\n\n\u003ca href=\"https://github.com/tracemachina/nativelink/graphs/contributors\" aria-label=\"View contributors of the NativeLink project on GitHub\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=tracemachina/nativelink\" alt=\"NativeLink contributors\" loading=\"lazy\" /\u003e\n\u003c/a\u003e\n\n## 🤝 Contributing\n\nVisit our [Contributing](https://github.com/tracemachina/nativelink/blob/main/CONTRIBUTING.md) guide to learn how to contribute to NativeLink. We welcome contributions from developers of all skill levels and backgrounds!\n\n## 📊 Stats\n\n![Alt](https://repobeats.axiom.co/api/embed/d8bfc6d283632c060beaab1e69494c2f7774a548.svg \"Repobeats analytics image\")\n\n## 📜 License\n\nCopyright 2020–2024 Trace Machina, Inc.\n\nLicensed under the Apache 2.0 License, SPDX identifier `Apache-2.0`.\n","funding_links":[],"categories":["Rust","Development tools","Repos"],"sub_categories":["Build system"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTraceMachina%2Fnativelink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTraceMachina%2Fnativelink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTraceMachina%2Fnativelink/lists"}