{"id":20852334,"url":"https://github.com/minizinc/libminizinc","last_synced_at":"2025-05-15T08:10:39.545Z","repository":{"id":26118111,"uuid":"29562582","full_name":"MiniZinc/libminizinc","owner":"MiniZinc","description":"The MiniZinc compiler","archived":false,"fork":false,"pushed_at":"2025-05-07T07:40:48.000Z","size":31040,"stargazers_count":547,"open_issues_count":124,"forks_count":82,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-07T08:39:45.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.minizinc.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MiniZinc.png","metadata":{"files":{"readme":"README.md","changelog":"changes.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-01-21T00:20:22.000Z","updated_at":"2025-05-04T08:24:50.000Z","dependencies_parsed_at":"2023-12-29T00:27:05.960Z","dependency_job_id":"0be1cbf2-32a9-445b-ace2-35b7ef27bf4e","html_url":"https://github.com/MiniZinc/libminizinc","commit_stats":{"total_commits":6261,"total_committers":56,"mean_commits":"111.80357142857143","dds":"0.47755949528829256","last_synced_commit":"718bf0be44373fbbf1341d9655e4730db0d609f0"},"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniZinc%2Flibminizinc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniZinc%2Flibminizinc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniZinc%2Flibminizinc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniZinc%2Flibminizinc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiniZinc","download_url":"https://codeload.github.com/MiniZinc/libminizinc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254301432,"owners_count":22047904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T03:17:15.963Z","updated_at":"2025-05-15T08:10:39.514Z","avatar_url":"https://github.com/MiniZinc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.minizinc.org/\"\u003e\n    \u003cimg src=\"https://www.minizinc.org/MiniZn_logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eMiniZinc\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    A high-level constraint modelling language that allows you to easily\n    express and solve discrete optimisation problems.\n    \u003cbr /\u003e\n    \u003ca href=\"https://www.minizinc.org/\"\u003e\u003cstrong\u003eVisit our website »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://www.minizinc.org/doc-latest/\"\u003eView Documentation\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/MiniZinc/libminizinc/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/MiniZinc/libminizinc/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n## Table of Contents\n\n- [About the Project](#about-the-project)\n- [Getting Started](#getting-started)\n  - [Installation](#installation)\n  - [Usage](#usage)\n- [Building](#building)\n  - [Prerequisites](#prerequisites)\n  - [Compilation](#compilation)\n- [Testing](#testing)\n- [License](#license)\n- [Acknowledgements](#acknowledgements)\n- [Contact](#contact)\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\nMiniZinc is a free and open-source constraint modeling language.\n\nYou can use MiniZinc to model constraint satisfaction and optimisation problems\nin a high-level, solver-independent way, taking advantage of a large library of\npre-defined constraints. Your model is then compiled into FlatZinc, a solver\ninput language that is understood by a wide range of solvers.\n\nMiniZinc is developed at Monash University with support from OPTIMA.\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nTo get a MiniZinc up and running follow these simple steps.\n\n### Installation\n\nThe recommended way to install _MiniZinc_ is by the use of the bundled binary\npackages. These packages are available for machines running Linux, Mac, and\nWindows.\n\nThe latest release can be found on [the MiniZinc\nwebsite](http://www.minizinc.org/software.html).\n\n### Usage\n\nOnce the MiniZinc bundle is installed on your machine, you can start expressing\nand solving discrete optimisation problems. The following code segment shows a\nMiniZinc model for the well known n-queens problem.\n\n```minizinc\nint: n = 8; % The number of queens.\n\narray [1..n] of var 1..n: q;\n\ninclude \"alldifferent.mzn\";\n\nconstraint alldifferent(q);\nconstraint alldifferent(i in 1..n)(q[i] + i);\nconstraint alldifferent(i in 1..n)(q[i] - i);\n```\n\nYou have two easy options to solve this model:\n\n- In the MiniZincIDE: Select your preferred solver and press the \"Run\" button.\n- With the `minizinc` executable available on your path: run `minizinc --solver gecode nqueens.mzn`.\n\n_For more example MiniZinc models and more information about working with\nMiniZinc, please refer to our\n[Documentation](https://www.minizinc.org/doc-latest/)_\n\n\u003c!-- BUILDING INSTRUCTIONS --\u003e\n\n## Building\n\nThe following instructions will help you compile the MiniZinc compiler. Note\nthat this repository does not include the IDE, findMUS, or any solvers that are\npart of the MiniZinc project. These can be found in the following repositories:\n\n- [MiniZincIDE](https://github.com/MiniZinc/MiniZincIDE)\n- [Gecode](https://github.com/Gecode/gecode)\n- [Chuffed](https://github.com/chuffed/chuffed)\n\n### Prerequisites\n\n- [CMake](https://cmake.org/) (\u003e=3.4)\n- A recent C++ compiler - Compilation is tested with recent versions of Clang,\n  GCC, and Microsoft Visual C++.\n- (optional) [Bison](https://www.gnu.org/software/bison/) (\u003e=3.4) and\n  [Flex](https://github.com/westes/flex) (\u003e=2.5) - To make changes to the\n  MiniZinc lexer or parser.\n- (optional) [Gecode](https://www.gecode.org/) - To compile the internal Gecode\n  solver interface (included in the MiniZinc bundle)\n- (optional) [Coin OR's CBC](https://www.coin-or.org/) - To compile the\n  internal CBC solver interface (included in the MiniZinc bundle)\n- (optional) Proprietary solver headers\n  ([CPLEX](https://www.ibm.com/analytics/cplex-optimizer),\n  [Gurobi](https://www.gurobi.com/), [SCIP](https://www.scipopt.org/),\n  [Xpress](https://www.fico.com/)) - To load these solvers at runtime (included\n  in the MiniZinc bundle)\n\n### Compilation\n\nThe MiniZinc compiler is compiled as a CMake project. CMake's [User Interaction\nGuide](https://cmake.org/cmake/help/latest/guide/user-interaction/index.html)\ncan provide you with a quick introduction to compiling CMake projects. The\nfollowing CMake variables can be used in the MiniZinc project to instruct the\ncompilation behaviour:\n\n| Variable                                     | Default | Description                                                 |\n| -------------------------------------------- | ------- | ----------------------------------------------------------- |\n| CMAKE_BUILD_TYPE                             | Release | Build type of single-configuration generators.              |\n| CMAKE_INSTALL_PREFIX                         |         | Install directory used by `--target install`.               |\n| CMAKE_POSITION_INDEPENDENT_CODE              | TRUE    | Whether to create a position-independent targets            |\n| **\u003csolver_name\u003e**\\_ROOT                      |         | Additional directory to look for **\u003csolver_name\u003e**          |\n| CMAKE*DISABLE_FIND_PACKAGE***\u003csolver_name\u003e** | FALSE   | Disable compilation of **\u003csolver_name\u003e**'s solver interface |\n| CPLEX_PLUGIN                                 | TRUE    | Load CPLEX at runtime (instead of static compilation)       |\n\nPossible values for **\u003csolver_name\u003e** are `CPlex`, `Geas`, `Gecode`, and `OsiCBC`.\n\n\u003c!-- TESTING INSTRUCTIONS --\u003e\n\n## Testing\n\nThe correctness of the MiniZinc compiler is tested using a\n[PyTest](https://docs.pytest.org/en/stable/) test suite. Instruction on how to\nrun the test suite and how to add new tests can be found\n[here](https://github.com/MiniZinc/libminizinc/tree/master/tests)\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the Mozilla Public License Version 2.0. See `LICENSE` for more information.\n\n\u003c!-- ACKNOWLEDGEMENTS --\u003e\n\n## Acknowledgements\n\nThis research was partially funded by the Australian Government through the Australian Research Council Industrial Transformation Training Centre in Optimization Technologies, Integrated Methodologies, and Applications ([OPTIMA](https://optima.org.au)), Project ID IC200100009.\n\n\u003c!-- CONTACT --\u003e\n\n## Contact\n\n🏛 **MiniZinc Community**\n\n- Website: [https://www.minizinc.org/](https://www.minizinc.org/)\n- StackOverflow: [https://stackoverflow.com/questions/tagged/minizinc](https://stackoverflow.com/questions/tagged/minizinc)\n- Google Groups: [https://groups.google.com/g/minizinc](https://groups.google.com/g/minizinc)\n\n🏛 **Monash Optimisation Group**\n\n- Website: [https://www.monash.edu/it/dsai/optimisation](https://www.monash.edu/it/dsai/optimisation)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminizinc%2Flibminizinc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminizinc%2Flibminizinc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminizinc%2Flibminizinc/lists"}