stan-dev/stan
Stan is a C++ library for full Bayesian inference using Hamiltonian Monte Carlo (NUTS) and automatic differentiation variational inference.

Stan provides complete Bayesian inference via the No-U-Turn sampler (a Hamiltonian Monte Carlo variant), approximate Bayesian inference through automatic differentiation variational inference (ADVI), and penalized maximum likelihood estimation with L-BFGS optimization. It builds on the Stan Math library, which supplies automatic differentiation using C++ template overloads along with a templated matrix and probability function library. Multiple interfaces are available including R, Python, MATLAB, Julia, and the command line.