Convert Figma logo to code with AI

Homebrew logohomebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)

13,694
12,398
13,694
110

Top Related Projects

The MacPorts ports tree

The Microsoft community Windows Package Manager manifest repository

17,805

Nix Packages collection & NixOS

2,055

[MIRROR] Official Gentoo ebuild repository

Quick Overview

Homebrew/homebrew-core is the core formulae repository for Homebrew, the popular package manager for macOS (and Linux). It contains the definitions for thousands of packages that can be installed using Homebrew, making it a central hub for macOS software distribution and management.

Pros

  • Extensive collection of software packages for macOS
  • Community-driven, with frequent updates and contributions
  • Well-maintained and curated by experienced maintainers
  • Integrates seamlessly with the Homebrew package manager

Cons

  • Can sometimes lag behind the latest software versions
  • Occasional conflicts between formulae or with system-installed software
  • Limited to command-line tools and libraries (GUI apps are handled separately)
  • Requires regular updates to keep packages current

Getting Started

To use Homebrew and access the packages in homebrew-core:

  1. Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Update Homebrew:
brew update
  1. Install a package:
brew install <package_name>
  1. Search for available packages:
brew search <keyword>
  1. Upgrade installed packages:
brew upgrade

For more information and advanced usage, visit the official Homebrew documentation at https://docs.brew.sh/.

Competitor Comparisons

The MacPorts ports tree

Pros of macports-ports

  • More comprehensive package management system with better dependency handling
  • Supports multiple versions of packages installed simultaneously
  • Isolates installations from the base system, reducing conflicts

Cons of macports-ports

  • Generally slower installation process compared to Homebrew
  • Requires more disk space due to its isolation approach
  • Less user-friendly for beginners, with a steeper learning curve

Code Comparison

macports-ports:

PortSystem          1.0
name                example
version             1.0
categories          devel
maintainers         example.com:user
description         An example port
long_description    ${description}

homebrew-core:

class Example < Formula
  desc "An example formula"
  homepage "https://example.com"
  url "https://example.com/example-1.0.tar.gz"
  sha256 "abcdef1234567890abcdef1234567890"
  
  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Both repositories use different syntaxes for defining packages. MacPorts uses TCL-based Portfiles, while Homebrew uses Ruby-based formulae. The MacPorts approach is more verbose but offers finer control over the installation process, while Homebrew's syntax is more concise and easier to read for many users.

The Microsoft community Windows Package Manager manifest repository

Pros of winget-pkgs

  • Native Windows integration and support
  • Simpler package submission process for developers
  • Centralized management through Windows Package Manager

Cons of winget-pkgs

  • Smaller package ecosystem compared to homebrew-core
  • Limited to Windows platform only
  • Less mature and established community

Code Comparison

winget-pkgs manifest (YAML):

PackageIdentifier: Example.App
PackageVersion: 1.0.0
PackageName: Example App
Publisher: Example Publisher
License: MIT
ShortDescription: A sample application
Installers:
  - Architecture: x64
    InstallerUrl: https://example.com/app-installer.exe
    InstallerType: exe

homebrew-core formula (Ruby):

class ExampleApp < Formula
  desc "A sample application"
  homepage "https://example.com"
  url "https://example.com/app-1.0.0.tar.gz"
  sha256 "abcdef1234567890abcdef1234567890"
  license "MIT"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

Both repositories serve as package management systems, but winget-pkgs focuses on Windows while homebrew-core primarily targets macOS and Linux. winget-pkgs uses YAML manifests for package definitions, whereas homebrew-core employs Ruby-based formulae. The homebrew-core ecosystem is more extensive and mature, but winget-pkgs offers tighter Windows integration and a simpler submission process for developers.

17,805

Nix Packages collection & NixOS

Pros of nixpkgs

  • Reproducible builds and system configurations
  • Declarative approach to package management
  • Supports multiple versions of packages simultaneously

Cons of nixpkgs

  • Steeper learning curve due to unique Nix language
  • Smaller community and ecosystem compared to Homebrew
  • Can be more resource-intensive for system management

Code Comparison

nixpkgs:

{ stdenv, fetchFromGitHub }:

stdenv.mkDerivation rec {
  pname = "example";
  version = "1.0.0";
  src = fetchFromGitHub {
    owner = "example";
    repo = "example";
    rev = "v${version}";
    sha256 = "0000000000000000000000000000000000000000000000000000";
  };
}

homebrew-core:

class Example < Formula
  desc "Example package"
  homepage "https://example.com"
  url "https://github.com/example/example/archive/v1.0.0.tar.gz"
  sha256 "0000000000000000000000000000000000000000000000000000"

  def install
    system "./configure", "--prefix=#{prefix}"
    system "make", "install"
  end
end

The nixpkgs example uses a declarative approach with the Nix language, while homebrew-core uses Ruby with a more imperative style. nixpkgs focuses on reproducibility and isolation, whereas homebrew-core aims for simplicity and ease of use for macOS users.

2,055

[MIRROR] Official Gentoo ebuild repository

Pros of gentoo

  • Offers more granular control over package compilation and optimization
  • Provides a more comprehensive system-wide package management approach
  • Allows for a highly customized and tailored system configuration

Cons of gentoo

  • Significantly longer installation and update times due to source compilation
  • Steeper learning curve and more complex management for new users
  • Requires more system resources and maintenance effort

Code comparison

gentoo (ebuild):

EAPI=7
inherit cmake

DESCRIPTION="A fast and lightweight key-value database"
HOMEPAGE="https://github.com/google/leveldb"
SRC_URI="https://github.com/google/leveldb/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86"
IUSE="snappy static-libs test"

homebrew-core (Ruby):

class Leveldb < Formula
  desc "Key-value storage library with ordered mapping"
  homepage "https://github.com/google/leveldb/"
  url "https://github.com/google/leveldb/archive/1.23.tar.gz"
  sha256 "9a37f8a6174f09bd622bc723b55881dc541cd50747cbd08831c2a82d620f6d76"
  license "BSD-3-Clause"

  depends_on "cmake" => :build
  depends_on "snappy"

The gentoo ebuild offers more explicit control over compilation flags and USE flags, while the homebrew-core formula provides a simpler, more streamlined approach to package installation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Homebrew Core

Core formulae for the Homebrew package manager.

Homebrew/discussions (forum)

How do I install these formulae?

Just brew install <formula>. This is the default tap for Homebrew and is installed by default.

More Documentation, Troubleshooting, Contributing, Security, Community, Donations, License and Sponsors

See these sections in Homebrew/brew's README.