  We present the Julia package Manifolds.jl, providing a fast and easy-to-use
library of Riemannian manifolds and Lie groups. This package enables working
with data defined on a Riemannian manifold, such as the circle, the sphere,
symmetric positive definite matrices, or one of the models for hyperbolic
spaces. We introduce a common interface, available in ManifoldsBase.jl, with
which new manifolds, applications, and algorithms can be implemented. We
demonstrate the utility of Manifolds.jl using B\'ezier splines, an optimization
task on manifolds, and principal component analysis on nonlinear data. In a
benchmark, Manifolds.jl outperforms all comparable packages for low-dimensional
manifolds in speed; over Python and Matlab packages, the improvement is often
several orders of magnitude, while over C/C++ packages, the improvement is
two-fold. For high-dimensional manifolds, it outperforms all packages except
for Tensorflow-Riemopt, which is specifically tailored for high-dimensional
manifolds.
