For the complete documentation index, see llms.txt.

Chainguard Libraries overview

Learn about Chainguard Libraries, providing enhanced security for Java, JavaScript, and Python dependencies through automated patching and comprehensive supply chain protection.
  5 min read

Chainguard Libraries provide enhanced security for open source dependencies in the Java, JavaScript, and Python ecosystems, addressing critical supply chain vulnerabilities through automated patching and continuous monitoring. Modern applications rely heavily on libraries from public repositories like Maven Central, npm Registry, and PyPI, but using these repositories introduces supply chain risks that could expose your applications and system to compromise.

Background

Open source libraries distributed through public repositories face several security challenges: maintainers may not promptly address vulnerabilities, binary artifacts can be compromised, and the sheer volume of transitive dependencies makes manual security management impractical. While these repositories enable rapid development, they also introduce supply chain risks that traditional security approaches struggle to address.

While convenient, these services remove the direct link from your application to the source code of a specific project, and create a potential risk for quality issues with the artifacts, man-in-the-middle attacks, removal or override of libraries with vulnerable or malicious versions, and other issues. The Supply-chain Levels for Software Artifacts (SLSA) specification describes these risks and how to protect your software against them.

Although this is a common way of accessing open source binaries, it requires you to put tremendous trust into the following aspects for the dozen or even hundreds of open source libraries you typically use for each application:

  • Maintainers and especially release managers of the projects
  • Local workstation or CI setup used for the release build
  • Release process mechanisms to create the binaries
  • Transport of the binaries from the build system to the public repositories
  • Management of access to the repositories
  • Monitoring of repositories for attacks as well as harmful or malicious binaries
  • Traffic to public repositories and attacks on the transport to your infrastructure

There are no real guarantees as to the actual provenance of the software code. Repositories also vary greatly in quality and there is no guarantee that the upstream source of a project is available in a repository. In addition, these repositories also hold non-open source binaries of libraries.

All these factors create uncertainty. Using these public repositories can feel as opaque as picking up a USB drive off of the sidewalk and plugging it into your laptop.

Introduction

Chainguard Libraries builds all available libraries from source code in the Chainguard Factory and makes them available for you. The Chainguard Factory is Chainguard’s internal tooling that enables a more secure, dedicated, private, and SLSA-certified build infrastructure for building software from source and publishing the binaries to customers.

Chainguard Libraries and the use of the Chainguard Factory remove many software supply chain problems for libraries:

  • All binary libraries and library versions are built within the trusted Chainguard infrastructure directly from the source code of the official project.
  • Binaries are handled and managed only by Chainguard and made exclusively available for your consumption.
  • Any supply chain attacks at build and distribution are eliminated, since all steps from the source to your use are handled by Chainguard.
  • If there is no open source code available, no binaries are made available by Chainguard. This eliminates any license-related risks from commercial libraries. The policy and process to have no binaries without source also removes the danger from malicious artifacts, since these artifacts do not provide source code in public code repositories.

Chainguard Libraries is available for the following library ecosystems:

Chainguard criteria for building a library

Chainguard Libraries includes thousands of Java, JavaScript, and Python libraries, and coverage is continuously growing as we add more packages and versions over time. Chainguard aims to build libraries that are relevant to our customers and that support broader software supply chain security goals. However, it is not always feasible or safe to rebuild and redistribute every package from public registries such as Maven Central, npm, or PyPI.

Licensing and source availability

Chainguard Libraries are rebuilt from upstream source code, not mirrored binaries from public registries. For a library to be in scope:

  • Source code must be available and verifiable
    • The project’s source must be available in a source code manager (such as GitHub or GitLab). Packages that do not provide a valid or verifiable source URL cannot be rebuilt in the Chainguard Factory and are out of scope.
  • Licensing must allow rebuild and redistribution
    • The project must be licensed in a way that allows Chainguard to rebuild and redistribute it to customers.

Library version support

Chainguard builds libraries using supported language toolchains in our hardened build environment. We do not aim to replicate all historical runtime environments exactly, but we do attempt to preserve runtime compatibility where it is safe to do so. For older or EOL projects, our ability to build and remediate issues is constrained by runtime compatibility and by upstream maintenance practices.

Our current minimum supported toolchains are:

  • Python: Python 3.10 and higher.
  • Java: Java 8 and higher.
  • JavaScript: Any supported, non-EOL version of Node.js.

We will attempt to rebuild any libraries that meet the licensing and source availability criteria using the supported toolchains.

EOL version support

When a library version reaches end of life (EOL) upstream, Chainguard Libraries continues to build packages and provide security fixes for that version for six months beyond the upstream EOL date.

After that six-month window closes, Chainguard Libraries will:

  • No longer build new packages that require the EOL version
  • No longer provide security fixes for packages built against the EOL version
  • Continue to serve previously built packages

Other resources

Blog posts

Last updated: 2025-07-23 15:09