30 open-source projects similar to pnpm/pnpm, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Pnpm alternative.
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
Homebrew is a command-line package management tool designed to automate the installation, configuration, and maintenance of software on local development environments. It functions as a cross-platform software distributor, enabling users to install tools from pre-compiled binary archives or source code without requiring administrative privileges. By managing complex dependency trees and versioning, it ensures that software remains consistent and compatible across different system architectures. The project distinguishes itself through a declarative approach to system configuration, allowing u
Pipenv is a Python dependency manager and virtual environment manager that ensures reproducible environments across different systems. It functions as a lockfile resolver, generating deterministic lockfiles from high-level dependency constraints to prevent version drift. The tool integrates project workflow automation by loading environment variables and executing custom project scripts. It also includes security auditing capabilities to scan installed packages for known vulnerabilities. The system covers a broad range of capabilities including dependency version locking, package installatio
Conda is a binary package manager, cross-platform environment manager, and dependency resolution engine. It serves as a software repository manager that enables the installation and update of pre-compiled binaries and their dependencies across different operating systems. The system creates isolated execution spaces to prevent dependency conflicts between projects and uses a solver to calculate compatible package versions based on constraints from available repositories. It supports the creation of custom software packages from recipes, which can be hosted in public or private channels for di
Yarn is a command-line package manager for JavaScript projects that automates the installation, versioning, and configuration of external code dependencies. It functions as a deterministic build tool, utilizing a lockfile to calculate a fixed dependency graph that ensures identical package versions across development, testing, and production environments. The project distinguishes itself through a content-addressable storage system that indexes packages by hash to eliminate redundant downloads and enable instant linking. It incorporates a virtual file system mapping that presents a unified vi
npm is a JavaScript package manager and dependency management tool. It serves as a command line interface for interacting with a central registry of shareable JavaScript code modules, allowing for the installation and management of third-party libraries. The project handles Node.js package distribution by publishing code to a registry and managing project environment versioning to prevent breaking changes. It provides the necessary infrastructure for JavaScript dependency management and frontend build automation. Core capabilities include the ability to install project dependencies, resolve
Bower is a frontend package manager and client-side asset manager used to install and track third-party JavaScript and CSS libraries for browser-based projects. It functions as a web dependency manager that ensures consistent versioning across different development environments. The tool operates as a Git-based dependency manager, retrieving source code directly from Git repositories rather than relying on a central package registry. It utilizes a semantic versioning resolver to match manifest constraints against Git tags to determine the correct package version. To prevent nested directory t
This project provides a comprehensive framework for securing the software supply chain within the Node.js ecosystem. It focuses on mitigating risks associated with third-party dependencies by implementing technical controls and governance policies designed to prevent malicious code injection and ensure the integrity of the development environment. The guide distinguishes itself by offering specific hardening techniques for package management, such as disabling automatic execution of lifecycle scripts and enforcing strict registry-scoped dependency routing to prevent dependency confusion. It e
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
Mamba is a package manager for scientific and data science workflows that implements a high-performance dependency solver in C++. It uses a SAT-based resolution model and a specialized library for metadata processing to calculate compatible package versions across different operating systems. The project provides a standalone executable runtime, allowing the creation of isolated package environments without requiring a pre-existing system installation. It ensures reproducible environment setup by utilizing lock files to pin exact package versions and channels. The system supports containeriz
PDM is a Python package manager, dependency resolver, and build tool designed to create reproducible environments. It functions as a runtime manager that installs and switches between different versions of the Python interpreter using standalone builds, while managing isolated virtual environments to prevent version conflicts between projects. The tool distinguishes itself through the use of cross-platform lockfiles and a plugin-based extension architecture, allowing users to add new capabilities via external distributions. It provides a centralized package caching system and a parallel insta
CocoaPods is a dependency manager for Swift and Objective-C projects that integrates third-party libraries via configuration files. It serves as a project workspace orchestrator, coordinating the build process and linking external dependencies through centralized workspace configurations. To ensure environment consistency across different development machines, it employs a manifest-based version locking system. The project provides a version-controlled library specification registry for managing and distributing metadata and source paths for reusable code modules. It includes tools for extern
Swift Package Manager is a cross-platform build tool, dependency resolver, and package distributor. It compiles Swift source code into native executable binaries for multiple operating systems and manages the resolution and linking of external Swift code packages. The tool facilitates Swift package distribution by sharing and distributing reusable source code through public or private channels. It orchestrates Swift projects by managing external code libraries and versioning to ensure consistent builds across different development environments.
Yay is a command-line package manager designed for Arch Linux systems. It functions as an interface for managing the software lifecycle, including the installation, updating, and removal of packages from both official repositories and community-maintained archives. The tool serves as an automated helper for the Arch User Repository, streamlining the retrieval, compilation, and installation of software by handling dependency resolution and build script execution. It coordinates these multi-step workflows through a terminal-based interface, allowing users to interact with package metadata, subm
This project is a cross-platform package manager designed to automate the acquisition, compilation, and integration of third-party software libraries into native development projects. It functions as a manifest-driven dependency manager, utilizing declarative configuration files to define project requirements and resolve them into consistent, versioned dependency graphs across Windows, Linux, and macOS. The system distinguishes itself through port-based build automation, which uses standardized scripts to fetch, patch, and compile source code, and triplets-based configuration files that encap
yalc is a local package development tool that replaces remote npm dependencies with local copies, enabling iterative testing and development of unpublished packages across multiple projects without publishing to a remote registry. It manages a global flat-file store of package copies and uses symlinks to inject those copies into a project's node_modules for real-time development workflows. The tool operates through a copy-on-publish workflow, where publishable files from a local package are copied into the global store, mimicking a registry publish locally. It tracks installed packages via a
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
Conan is a package manager and binary repository for C and C++ that resolves and installs external libraries to ensure consistent build environments across different platforms. It functions as a native dependency resolver and a cross-platform build tool designed to facilitate reproducible native builds. The project provides capabilities for native package hosting, allowing users to implement a server to store and distribute pre-compiled libraries and their required dependencies. It also supports standalone binary bundling to create executable files that include all necessary runtime dependenc
This project is a package manager and configuration framework for Neovim, designed to orchestrate the lifecycle of editor extensions. It provides a centralized system for installing, updating, and tracking plugins while ensuring consistent dependency resolution across different environments through the use of lockfiles. The framework distinguishes itself by prioritizing startup performance and modularity. It employs event-based lazy loading to defer the initialization of extensions until specific user interactions, commands, or file types trigger their activation. To further accelerate the ed
This project is a command line package manager and dependency management engine used for installing, updating, and removing software packages across different operating systems. It functions as a package recipe system and software repository administrator, utilizing declarative scripts to define software sources, build arguments, and installation steps. The system operates as a binary distribution platform that compiles source code into pre-compiled binaries and distributes them through remote repositories. It includes an automated version tracker that monitors upstream software releases and
This project is a Ruby-based package definition repository that functions as a cross-platform package manager and software dependency resolver for macOS and Linux. It provides a centralized system for installing, updating, and managing software through a Git-based distribution model. The system distinguishes itself through a binary package distribution network that produces pre-compiled bottles to avoid local compilation from source. It utilizes a Ruby-based domain specific language to define installation recipes and employs a distributed version control architecture to synchronize these defi
The Windows Package Manager is a command line tool for discovering, installing, upgrading, and configuring software packages on Windows operating systems. It functions as a CLI software installer for automating the deployment and update of applications across individual or machine-wide user profiles. The project extends its functionality through a component object model interface for integration into other Windows applications and a set of native cmdlets that allow system administrators to manage software installation via PowerShell scripts. The tool covers a broad range of package lifecycle
Setuptools is a Python package build tool and distribution framework used to bundle code into distributable archives. It functions as a project metadata manager, allowing for the declarative definition of project identity, versioning, and dependencies. The toolkit distinguishes itself by providing an extension compiler for C and C++ source files and a plugin architecture that uses entry points to enable runtime discovery of functionality. It also supports development environment tooling, such as editable installs that link source code directly to the environment to allow immediate changes wit
Xmake is a cross-platform build utility and package manager designed for C and C++ development. It functions as a unified build automation tool that uses a Lua-based domain-specific language to define project targets, manage dependencies, and orchestrate compilation across multiple operating systems and hardware architectures. The system distinguishes itself through a modular, rule-based approach to task orchestration and toolchain integration. By abstracting native build systems and compilers, it allows developers to maintain consistent project configurations while targeting diverse environm
packer.nvim is a declarative plugin manager for Neovim that uses the editor's native package system to install, update, and remove plugins. It functions as a lazy loading orchestrator, a Lua package manager for Luarocks dependencies, and an environment snapshot tool for saving and restoring plugin states to enable version rollbacks. The project optimizes editor startup by compiling loading rules and deferring plugin initialization until specific triggers, such as commands or filetypes, occur. It ensures environment stability through dependency-graph resolution and loading order control. The
Scoop is a command-line package manager for Windows designed to automate the installation, configuration, and lifecycle management of software. It utilizes a manifest-driven architecture where applications are defined in structured text files, allowing for consistent and repeatable deployments. By leveraging shim-based path management and symlink-based version switching, it enables users to install and toggle between multiple software versions without cluttering the global system environment. The project distinguishes itself through its focus on portability and clean system integration. It su
Termux is a mobile terminal emulator and Linux environment runtime that provides a full command-line interface directly on Android devices. It functions as a comprehensive platform for executing native binaries and scripts, featuring an integrated package management system that allows users to download, install, and manage open-source software repositories to extend device functionality. The project distinguishes itself by acting as an embedded execution library, enabling third-party applications to integrate terminal and package management capabilities into their own interfaces without requi
This project is a community-driven directory of software resources, libraries, and tools designed to support iOS application development. It serves as a centralized reference point for developers, organizing a vast ecosystem of third-party components into a searchable, structured index to facilitate discovery and project integration. The repository distinguishes itself through its collaborative curation model, which aggregates disparate utilities into a single, maintainable catalog. By leveraging a flat-file documentation structure, it provides a clear overview of the tools available for nati
Chocolatey is a Windows package manager and command-line software automator. It serves as a system configuration tool designed to automate the installation, upgrading, and removal of software packages on Windows operating systems through a terminal interface. The project utilizes a NuGet-based software distribution model to manage and version applications. This approach replaces manual downloads and interactive installer wizards with scripted, repeatable deployments. The tool covers broad capability areas including automated system provisioning, Windows package deployment, and software manag
This project provides a functional package manager and a reproducible build system designed to ensure identical build inputs always produce the same outputs. It serves as the foundation for a declarative Linux distribution where the entire system state is defined in a configuration file, enabling predictable deployments and full-system rollbacks. The system uses a deterministic functional language and a lazy-evaluation expression engine to manage software dependencies and isolate build environments. It distinguishes itself through a content-addressable store that allows multiple versions of s