  We present a new open source C library msolve dedicated to solving
multivariate polynomial systems of dimension zero through computer algebra
methods. The core algorithmic framework of msolve relies on Gr{\"o}bner bases
and linear algebra based algorithms for polynomial system solving. It relies on
Gr{\"o}bner basis computation w.r.t. the degree reverse lexicographical order,
Gr{\"o}bner conversion to a lexicographical Gr{\"o}bner basis and real solving
of univariate polynomials. We explain in detail how these three main steps of
the solving process are implemented, how we exploit AVX2 instruction processors
and the more general implementation ideas we put into practice to better
exploit the computational capabilities of this algorithmic framework. We
compare the practical performances of msolve with leading computer algebra
systems such as \textsc{Magma}, \textsc{Maple} , \textsc{Singular} on a wide
range of systems with finitely many complex solutions, showing that msolve can
tackle systems which were out of reach by the computer algebra software
state-of-the-art.
