115 dépôts
Tools for managing third-party libraries and project dependencies.
Explore 115 awesome GitHub repositories matching part of an awesome list · Package Management. Refine with filters or upvote what's useful.
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
Package manager for macOS and Linux.
pnpm is a command-line package manager designed to automate the retrieval, installation, and version management of software dependencies. It utilizes a deterministic resolution process and a lockfile to ensure that dependency trees remain consistent across different environments and machines. The project distinguishes itself through a content-addressable storage engine that saves every version of a package exactly once on the file system. By employing a hard-linking installation strategy and a symlink-based directory structure, it maps dependencies from a central store into individual project
Fast, disk-efficient package manager.
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
Tool for acquiring and building open-source C++ libraries.
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
Official tool for dependency and environment management.
This project is a macOS binary package manager and command line interface used to automate the installation and removal of prebuilt graphical applications. It functions as a software installer and orchestrator, providing a terminal-based workflow for managing the lifecycle of third-party binaries. The tool focuses on macOS application installation and system administration, allowing for the setup and deployment of software via scripts to avoid manual downloads. It covers the management of binary software and the automation of graphical application setups on macOS.
CLI for managing binary Mac applications.
Verdaccio is a registry server that implements the npm protocol to store, serve, and manage software dependencies. It functions as a private registry proxy for Node.js packages, allowing organizations to host internal packages while caching public modules. The system features a pluggable middleware architecture that enables the extension of registry behavior through custom plugins for authentication and storage backends. It supports scalable remote data management by offloading package files to S3-compatible object stores. The platform covers package lifecycle management, including publishin
Private lightweight NPM registry.
Carthage is a decentralized dependency manager for Cocoa projects and an automation tool for Xcode builds. It functions as a Git-based framework manager and binary distribution tool used to fetch, build, and manage external libraries. The project distinguishes itself by supporting the production and distribution of platform-independent binary frameworks and static libraries. It utilizes Git tags and submodules to lock specific versions of external libraries and provides mechanisms to distribute prebuilt binaries via zipped release archives. The system covers dependency resolution and version
Decentralized dependency manager for Cocoa projects.
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
Dependency manager for Objective-C projects.
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
AUR helper for managing packages on Arch Linux.
Ninja is a low-level build system and executable designed to function as a backend for higher-level build generators. It serves as a build graph processor that evaluates build files to determine the optimal execution order for target dependencies and binaries. The tool focuses on fast software compilation by executing commands based on dependency graphs to transform source code into binaries. It operates as an incremental build tool, utilizing file timestamps to manage build operations and recompile only the modified parts of a project. The system manages build automation through automated d
High-performance build system for generated input files.
This project is a dependency management tool for Go designed to track and lock package versions to ensure reproducible builds across different environments. It functions as a version lock file manager, recording complete snapshots of the dependency graph to prevent version drift, and as a semantic version constraint resolver that calculates compatible package versions. The tool orchestrates a local vendor directory, mirroring external source code to enable offline builds and source auditing. It utilizes a combination of static analysis to discover required libraries and a logic engine to inte
Dependency management tool for Go.
fpm is a multiplatform package builder and converter used to create software packages for various Linux distribution formats from a single unified source. It functions as a Linux distribution packager and a cross-format converter, transforming local directories, existing packages, or language-specific modules into platform-native formats such as DEB and RPM. The tool acts as a language-specific package wrapper, bundling modules from Node.js, Python, Ruby, and Perl into system packages. It can also generate packages that automatically configure system services for targets like systemd. The pr
Versatile utility for creating packages in multiple formats.
npm-check-updates is a command line utility and package version manager used to find and apply newer versions of dependencies within npm package manifests. It functions as a dependency version validator that identifies outdated packages and updates version strings in the project manifest to the latest available releases. The tool features an interactive CLI for selecting specific packages to upgrade through a prompt-based interface. It distinguishes itself by enforcing version cooldown periods to restrict the adoption of very recent releases and providing a mechanism to iteratively install up
Find newer versions of project dependencies.
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.
Official package manager for the Swift language.
npm-check-updates is a command line utility and programmatic module used to check for newer versions of npm packages and update project manifest files. It functions as a registry client and semantic version manager that upgrades package constraints to the latest releases. The tool distinguishes itself by including supply chain security features, such as a release cooldown period and package ownership tracking, to prevent the adoption of unstable or malicious new releases. It also provides a programmatic API for integrating dependency checks and upgrades directly into custom scripts. Broad ca
Checks for dependency updates.
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
Standard JavaScript package manager.
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
Comprehensive package manager with native build system integration.
AppImageKit is a set of utility tools for the portable Linux application format, designed to bundle desktop applications into single executable binaries that run across multiple Linux distributions without requiring a system-wide installation. The toolkit provides specialized utilities for packaging applications into standalone binaries, extracting embedded filesystem images for inspection or execution, and signing binaries with cryptographic signatures to verify authenticity and integrity. The project covers binary packaging and deployment, embedded filesystem management, and digital packag
Framework for creating portable, distro-independent application bundles.
Conventional Changelog is a set of tools for automatically generating formatted release notes by parsing Git commit messages that follow a structured specification. It includes a commit message parser to transform raw strings into structured data, a changelog generator for producing release notes, and a commit linter to ensure messages adhere to specific conventions before they are merged. The project provides a system for semantic versioning automation, analyzing commit history to recommend the next version bump based on the types of changes recorded. It supports extensibility through config
Automated changelog generation from commit messages.
Glide is a Go dependency management tool that fetches, pins, and vendors external packages to enable reproducible builds across environments. It stores project-specific copies of Go packages in a vendor directory, isolating dependencies per project to avoid version conflicts, and supports fetching packages from Git, Mercurial, Bazaar, and Subversion repositories. The tool resolves dependency versions using semantic versioning ranges and operators, and generates a lock file that records exact commit IDs for all transitive dependencies. Glide distinguishes itself with an interactive version wiz
Dependency management inspired by Maven and Bundler.