Choco-solver is a java library for constraint satisfaction problems and constraint optimization problems. The Choco-solver library contains numerous variables, constraints and search procedures, to provide wide modeling perspectives. Most common variables are integer variables (including binary variables and views) but the distribution also includes set variables, graph variables and real variables. The constraint library provided by Choco-solver contains many global constraints, which gives a very expressive modeling language. The search process can also be greatly improved by various built-in search strategies (such as DomWDeg, CHS, ABS, first-fail, etc.) and some optimization procedures (LNS, fast restart, etc.). Moreover, Choco-solver natively supports explained constraints. Last, several useful extra features, such as a FlatZinc (the target language of MiniZinc) parser, are provided as well. Choco-solver is used by the academy for teaching and research and by the industry to solve real-world problems, such as program verification, smart grid management, timetabling, scheduling and routing. Main authors of Choco-solver are Charles Prud’homme (TASC, LS2N UMR 6241), Jean-Guillaume Fages (COSLING S.A.S.), Arthur Godet (Groupe SNCF) and Dimitri Justeau-Allaire (IRD). For any informations visit our website : http://choco-solver.org