Downloads


Official binary packages are provided for Windows, macOS and Linux.
These contain MiniZinc 2.10.1, the MiniZinc IDE 2.10.1, as well as several state of the art solvers.
For detailed installation instructions, see the documentation.

Both the compiler tool chain and the IDE are available as free and open source software.
Have a look at our License Information page for the details.

The MiniZinc compiler and IDE

The compiler is the heart of the MiniZinc tool chain. It translates constraint models into FlatZinc, a language that is understood by a wide range of solvers.

MiniZinc comes with a simple Integrated Development Environment, the MiniZinc IDE, which makes it easy to develop and run constraint models.

Solvers

A number of solvers are included in the official binary packages:

MiniZinc can also interface with the following solvers if installed:

Additionally, many other compatible solvers can be installed, including:

Note that if you build MiniZinc from source, you will have to install any desired solvers yourself.

The MiniZinc IDE

Reporting issues

We are grateful for feedback on MiniZinc, including bug reports, feature requests and ideas for improvements.

For general discussions about MiniZinc, please use the discussion forum.

To report an issue, please use the following issue trackers:

Releases

The latest release of MiniZinc is version 2.10.1, released 31 August 2026.

  • Add an experimental parser using the tree-sitter grammar shared with shackle, enabled by setting the MZN_TREE_SITTER_PARSER environment variable. Syntax that is not yet supported, such as class declarations and lambdas, is rejected by name rather than as a generic syntax error. Data files are read with a separate, stricter grammar that accepts data, not all MiniZinc expressions. A warning is issued for invalid data, but will not be accepted in the future.
  • Harden how external FlatZinc solvers are launched. On POSIX, the solver is now started with posix_spawn in its own process group, using close-on-exec pipes and full error checking. On Windows, the solver inherits only the three standard I/O handles (instead of every inheritable handle) and is placed in a kill-on-close job object, so it is reliably terminated together with MiniZinc. Several descriptor and handle leaks were fixed in the process.
  • Extend the Xpress solver interface with support for lazy constraints, lexicographic multiple objectives (via the goal_hierarchy annotation), and user cuts, and enable quadratic and bilinear constraints.
  • Make built-in Gecode solver interface handle restart annotations and statistics output.
  • Greatly reduce the memory used by two-pass compilation (--two-pass, -O2 and above). The paths that identify variables between passes were stored as one string per variable, each spelling out the file name of every frame on the flattening call stack, and held several times over. They are now an interned tree of shared frames, and the text is only built when --keep-paths or --output-paths asks for it. Where an expression has picked up more than one path, the deepest one is now kept. Previously the textually longest was kept, which could prefer a shallower path that happened to run through longer file or function names (issue 1029).
  • Plus 10+ bugfixes!

See the full changelog.

Previous releases

View older releases.