MiniZinc is a modelling language and tool chain for constraint optimisation problems. It supports high-level modelling features such as global constraints, multi-dimensional arrays, and user-defined predicates and functions. A MiniZinc model can be compiled for a variety of different backend solving technologies, including constraint programming, SAT/SMT, and mathematical programming solvers. Version 2.1 of the MiniZinc system is available as an open-source C++ library and comes with a dedicated IDE, tutorial and reference documentation. The library approach makes it possible to embed optimisation models directly into application software and other programming languages. We aim to make MiniZinc a de-facto standard for high-level modelling of constrained optimisation problems.