awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
yarnpkg avatar

yarnpkg/berry

0
View on GitHub↗
8,052 星标·1,257 分支·TypeScript·bsd-2-clause·11 次浏览yarnpkg.com↗

Berry

Berry is a Node.js package manager, dependency resolution engine, and monorepo workspace manager. It provides the tools necessary for resolving, downloading, and managing dependencies to ensure consistent environments across different development machines, while also serving as a publishing tool for uploading versioned package tarballs to registries.

The project is distinguished by its implementation of Plug'n'Play, which resolves dependencies without creating a physical node_modules directory by mapping dependencies directly to the file system. This enables a zero-install development workflow where a local package cache is stored within version control, allowing projects to run immediately after checkout without executing installation commands.

The manager covers a broad surface of capability areas, including monorepo coordination through workspace management, secure package distribution with vulnerability auditing and integrity verification, and a plugin-based architecture for extending core functionality. It also includes tools for third-party package patching, dependency constraint enforcement, and the management of package lifecycles and versioning.

Features

  • Monorepo Managers - Coordinates multiple internal packages within a single repository to simplify dependency management and shared code maintenance.
  • Version Controlled Caches - Enables a zero-install workflow by storing compressed package archives directly within version control.
  • Package Dependency Managers - Provides a comprehensive system for resolving, installing, and updating software package dependencies for Node.js projects.
  • Immutable Lockfile Validation - Enforces a strict match between the project state and the lockfile to prevent accidental dependency drift.
  • Plug-and-Play Installers - Implements the Plug'n'Play specification to resolve dependencies without a physical node_modules directory.
  • Package Registry Integrations - Implements mechanisms to retrieve source code and artifacts from remote registries or local disk locations.
  • Dependency Orchestrators - Manages versions and relationships of installed packages to prevent conflicts and ensure reproducible builds.
  • Node.js Dependency Managers - Resolves and downloads dependency trees specifically for Node.js projects to ensure consistent environments.
  • Package Caches - Maintains a local cache of downloaded package artifacts to eliminate redundant network requests and enable offline use.
  • Zero-Install Caches - Stores compressed package archives within version control to allow immediate execution after project checkout.
  • Workspace Managers - Coordinates dependencies and executes commands across multiple internal packages within a single project.
  • Workspace-Aware Resolution - Manages dependencies between internal sub-projects using a specialized protocol that avoids external registry lookups.
  • Workspace Dependency Resolution - Implements a dedicated protocol for resolving dependencies between internal sub-projects in a monorepo.
  • Zero-Install Workflows - Enables a zero-install development experience by combining Plug'n'Play resolution with a version-controlled local package cache.
  • Dependency Resolution Controls - Provides advanced controls to override package versions and enforce strict constraints for reproducible build states.
  • Dependency Resolution - Automates the resolution and downloading of all required packages to prepare a project for execution.
  • Dependency Specifications - Implements a system for defining required, optional, development, and peer dependencies.
  • External Library Installers - Downloads and configures external libraries required for a project while ensuring consistent versions.
  • Plug-and-Play Resolution - Maps package dependencies to a static lookup table to eliminate the physical node_modules directory.
  • Virtual File System Resolvers - Implements Plug'n'Play to resolve dependencies via a static mapping table, eliminating the need for a physical node_modules directory.
  • Dependency Resolution Engines - Implements a sophisticated engine for converting version ranges into fixed references and maintaining a reproducible lockfile.
  • Project Constraint Validation - Validates that a project adheres to a set of defined rules using a constraints database.
  • Dependency Consistency Validators - Ensures workspaces adhere to specified dependency ranges and automatically fixes incompatible dependencies.
  • Lockfile Integrity Validators - Ensures the lockfile strictly matches the project state and prevents unauthorized modifications during immutable installs.
  • Package Publishing - Authenticates with remote registries to upload package versions and manage distribution tags.
  • Dependency Patching Utilities - Implements a workflow to prepare third-party packages for modification and commit custom patches.
  • Dependency Hardening - Offers hardened modes to validate the integrity of installed packages and protect against malicious code injection.
  • Offline Installation Tools - Allows dependencies to be saved locally, enabling full project installation without an active internet connection.
  • Dependency Override Managers - Provides a mechanism to force specific versions of dependencies to override default resolver selections.
  • Package Disk Linkers - Provides a linker that extracts fetched package archives into a specific disk layout based on the chosen strategy.
  • Secure Distribution Workflows - Ships tools for authenticating with registries, filtering published files, and auditing for known security vulnerabilities.
  • Package Publishing Tools - Provides utilities for authenticating with registries and uploading versioned package tarballs with configurable metadata.
  • Package Publishing Utilities - Configures registries, access levels, provenance, and executable permissions for package tarballs.
  • Dependency Resolution Overrides - Allows overriding default version selection logic through configurable rules and constraints to resolve dependency conflicts.
  • Workspace Command Orchestration - Runs commands across multiple sub-projects and allows targeting specific workspaces for installation.
  • Zero-Install Executions - Implements a zero-install workflow using a local package cache and a specialized loader to run projects immediately after checkout.
  • Dependency Hoisting - Controls how high dependencies are moved up the file tree in a workspace to manage installation structure.
  • Package Linkers - Extracts fetched package archives into specific disk layouts based on the chosen installation strategy.
  • Resolution Consistency Checks - Verifies that lockfile resolutions remain consistent with their initial version ranges during continuous integration.
  • Package Integrity Verifications - A system to check package checksums against the lockfile and manage checksum mismatches.
  • Architecture Compatibility Filtering - Filters package installations based on system OS, CPU, and libc requirements to ensure binary compatibility.
  • Extensible Plugin Architectures - Provides an extensibility system to add custom logic and new commands to the package management workflow.
  • Plugin Architectures - Employs a plugin-based architecture to extend core functionality and add new command sets via external modules.
  • Content-Addressable Caches - Caches package artifacts using unique checksums to ensure binary integrity and optimize disk usage.
  • Developer Tooling - Dependency management for JavaScript projects.
  • 开发者工具 - Package manager for dependency management.
  • Package Management - Modern package management tool.

Star 历史

yarnpkg/berry 的 Star 历史图表yarnpkg/berry 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

常见问题解答

yarnpkg/berry 是做什么的?

Berry is a Node.js package manager, dependency resolution engine, and monorepo workspace manager. It provides the tools necessary for resolving, downloading, and managing dependencies to ensure consistent environments across different development machines, while also serving as a publishing tool for uploading versioned package tarballs to registries.

yarnpkg/berry 的主要功能有哪些?

yarnpkg/berry 的主要功能包括:Monorepo Managers, Version Controlled Caches, Package Dependency Managers, Immutable Lockfile Validation, Plug-and-Play Installers, Package Registry Integrations, Dependency Orchestrators, Node.js Dependency Managers。

yarnpkg/berry 有哪些开源替代品?

yarnpkg/berry 的开源替代品包括: lerna/lerna — Lerna is a monorepo management tool, build orchestrator, and package publisher for JavaScript and TypeScript projects.… rust-lang/cargo — Cargo is the official build system and package manager for the Rust programming language. It provides a unified… npm/cli — This project is a command line interface for managing, installing, and publishing JavaScript packages to a remote… pypa/pip — pip is a Python package manager used to install, update, and remove software libraries from the Python Package Index… homebrew/legacy-homebrew — This project is a command line package manager and dependency management engine used for installing, updating, and… astral-sh/rye — Rye is a comprehensive Python toolchain manager, package manager, and virtual environment orchestrator. It provides a…

Berry 的开源替代方案

相似的开源项目,按与 Berry 的功能重合度排序。
  • lerna/lernalerna 的头像

    lerna/lerna

    36,066在 GitHub 上查看↗

    Lerna is a monorepo management tool, build orchestrator, and package publisher for JavaScript and TypeScript projects. It enables the management of multiple packages within a single shared repository, providing utilities for workspace organization and the coordinated publishing of packages to a registry. The tool distinguishes itself through dependency-aware task orchestration and automated version management. It uses topological sorting to sequence tasks and utilizes content-hash caching to skip redundant executions when input files remain unchanged. Versioning is automated by parsing standa

    TypeScriptlernamonoreponpm
    在 GitHub 上查看↗36,066
  • rust-lang/cargorust-lang 的头像

    rust-lang/cargo

    14,624在 GitHub 上查看↗

    Cargo is the official build system and package manager for the Rust programming language. It provides a unified command-line interface that orchestrates the entire development lifecycle, including compiling source code, managing complex dependency graphs, running tests, and distributing packages through a centralized registry. By utilizing declarative manifest files, it ensures that builds remain reproducible and consistent across different environments. The tool distinguishes itself through its deep integration with the Rust compiler and its sophisticated approach to project management. It f

    Rustcargopackage-managerrust
    在 GitHub 上查看↗14,624
  • npm/clinpm 的头像

    npm/cli

    9,846在 GitHub 上查看↗

    This project is a command line interface for managing, installing, and publishing JavaScript packages to a remote registry. It serves as a dependency resolution tool, a software registry publishing client, and a security auditor for Node.js development workflows. The tool distinguishes itself by providing integrated monorepo workspace management and a comprehensive registry authentication client that supports multi-factor authentication. It enables detailed control over the software supply chain through provenance attestations, package signature verification, and the generation of a Software

    JavaScriptjavascriptnodejsnpm
    在 GitHub 上查看↗9,846
  • pypa/pippypa 的头像

    pypa/pip

    10,186在 GitHub 上查看↗

    pip is a Python package manager used to install, update, and remove software libraries from the Python Package Index and other remote repositories. It functions as a dependency resolver that calculates compatible version sets for complex software trees, an environment inspector for analyzing installed distributions, and a wheel builder that compiles source distributions into binary files. The tool supports various installation methods, including fetching packages directly from web URLs and Git commits, as well as installing packages in editable mode for active development. It enables the crea

    Pythonpackagingpippython
    在 GitHub 上查看↗10,186
查看 Berry 的所有 30 个替代方案→