# Install or-tools with Homebrew, Nix

Google's Operations Research tools. Version 9.15 via Homebrew; verified 2026-06-29.

## Install

```sh
sudo av install brew:or-tools
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install or-tools
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#or-tools
```

  Evidence: nixpkgs package indexes: pkgs/by-name/or/or-tools/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:or-tools
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/or-tools>
- **Version:** 9.15
- **Source summary:** Google's Operations Research tools
- **Homepage:** <https://developers.google.com/optimization/>
- **Repository:** <https://github.com/google/or-tools>
- **Upstream docs:** <https://developers.google.com/optimization>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/google/or-tools/archive/refs/tags/v9.15.tar.gz>
- **Last updated:** 2026-06-29T14:11:35Z
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- fzn-cp-sat (cli)
- sat_runner (cli)
- solve (cli)
- vector_bin_packing (cli)
- fzn-cp-sat (alias)
- sat_runner (alias)
- solve (alias)
- vector_bin_packing (alias)

## Dependencies

- abseil
- cbc
- cgl
- clp
- coinutils
- eigen
- gmp
- highs
- mpfr
- openblas
- osi
- protobuf
- re2
- scip

## Build dependencies

- cmake
- pkgconf

## Uses from macOS

- bzip2

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 9.15
- Package-manager updated: 2026-06-29
- Local data: ok
- Upstream repository: https://github.com/google/or-tools
- Upstream latest detected: v9.15 (current)
## Project history and usage

Google OR-Tools is an open source suite for combinatorial optimization. It packages solvers and modeling APIs for vehicle routing, scheduling, assignment, packing, flows, linear and integer programming, and constraint programming.

### Project history

Google Research describes OR-Tools as being in development since 2008, with core algorithms implemented in C++ and user access through Python, Java, C#, Go, and later Julia wrappers. The public project presents itself as Google's software suite for combinatorial optimization, written in C++ with bindings for Python, C#, and Java.

The suite accumulated several solver families rather than staying a single optimizer. The repository README lists CP and CP-SAT constraint programming solvers, Glop and PDLP linear programming solvers, wrappers around commercial and open source mixed-integer solvers, bin packing and knapsack algorithms, traveling-salesman and vehicle-routing algorithms, and graph algorithms.

The modern center of gravity is CP-SAT, Google's SAT-based constraint programming solver. The Google Developers site highlights CP-SAT as award winning, and the OR-Tools landing page says OR-Tools won gold in the international MiniZinc constraint programming competition every year since 2013.

### Adoption history

OR-Tools is distributed across language ecosystems rather than only through OS packages. The GitHub README displays package badges for PyPI, NuGet, and Maven Central, while the documentation teaches use from C++, Python, C#, and Java. Homebrew and Nix package it for command-line and native-library users.

The release notes show a mature, actively maintained systems package: platform support for Python, Linux distributions, .NET, Java, CMake, Bazel, and dependencies such as SCIP, Protobuf, Abseil, and SWIG changes across releases. That churn is part of its adoption story because optimization users expect native performance and language-specific installation paths.

### How it is used

Developers model an optimization problem in a supported language, choose an OR-Tools solver or wrapper, and solve tasks such as fleet routing, workforce scheduling, assignment, bin packing, minimum-cost flow, or mixed-integer linear optimization. The official landing page frames the workflow as: model in a programming language, then solve with open source solvers such as SCIP, GLPK, GLOP, and CP-SAT or commercial solvers such as CPLEX, Gurobi, and FICO Xpress.

The Homebrew package exposes tools such as `fzn-cp-sat`, `sat_runner`, `solve`, and `vector_bin_packing`, but most adoption happens through libraries and examples. That split makes OR-Tools an unusual package: command-line binaries are visible in OS package metadata, while the real user surface is language APIs and solver libraries.

### Why package nerds care

OR-Tools is a heavyweight package-management case study. It bundles advanced native C++ solvers, language bindings, optional integrations with commercial solvers, and fast-moving mathematical code, then has to land in Python wheels, Maven, NuGet, source builds, and OS packages without losing performance or ABI sanity.

For package nerds, it also explains why optimization libraries resist simple packaging: users want high-level modeling APIs, but the runtime depends on native code, solver backends, protobuf models, and platform-specific build systems.

### Timeline

- 2008: Google Research describes OR-Tools as being in development since this year.
- 2013: The OR-Tools site says the project began winning annual gold results in the international constraint programming competition.
- 2021-04: OR-Tools v9.0 release notes record Maven Central availability for Java packages.
- 2022-03: OR-Tools v9.3 introduces experimental PDLP and MathOpt components.
- 2025: Google Research publishes a tutorial paper describing OR-Tools' solvers and Julia access through JuMP and MathOptInterface.

### Related projects

- OR-Tools relates to CP-SAT, Glop, PDLP, SCIP, GLPK, CPLEX, Gurobi, FICO Xpress, MiniZinc, JuMP, MathOptInterface, Protobuf, Bazel, CMake, and the broader operations-research and mathematical-optimization ecosystem.

### Sources

- <https://developers.google.com/optimization>
- <https://developers.google.com/optimization/cp/cp_solver>
- <https://developers.google.com/optimization/support/release_notes>
- <https://formulae.brew.sh/formula/or-tools>
- <https://github.com/google/or-tools>
- <https://research.google/pubs/google-or-tools-solvers-for-all-and-now-in-julia/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** or-tools
- **Version Scheme:** 0
- **Revision:** 9
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - or-tools: normalized package name match | nixpkgs package indexes: pkgs/by-name/or/or-tools/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Scientific computing packages](https://www.automicvault.com/pkg/scientific-computing-tools/) - Matched scientific computing metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [cbc](https://www.automicvault.com/pkg/brew/cbc/) - Runtime dependency declared by Homebrew.
- [clp](https://www.automicvault.com/pkg/brew/clp/) - Runtime dependency declared by Homebrew.
- [highs](https://www.automicvault.com/pkg/brew/highs/) - Runtime dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [g2o](https://www.automicvault.com/pkg/brew/g2o/) - Shares av.db curated category or tags: cli, optimization, science.
- [gaul](https://www.automicvault.com/pkg/brew/gaul/) - Shares av.db curated category or tags: cli, optimization, science.
- [glpk](https://www.automicvault.com/pkg/brew/glpk/) - Shares av.db curated category or tags: cli, optimization, science.
- [ipopt](https://www.automicvault.com/pkg/brew/ipopt/) - Shares av.db curated category or tags: cli, optimization, science.
- [lp_solve](https://www.automicvault.com/pkg/brew/lp-solve/) - Shares av.db curated category or tags: cli, optimization, science.
- [minizinc](https://www.automicvault.com/pkg/brew/minizinc/) - Shares av.db curated category or tags: cli, optimization, science.
- [scip](https://www.automicvault.com/pkg/brew/scip/) - Local package facts share a topical domain. Shared terms: cli, constraint, gmp, mpfr, openblas.

## Combined YAML source

View the package source record on GitHub. [combined/or-tools.yml](https://github.com/automic-vault/db/blob/main/combined/or-tools.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
