  We present dynesty, a public, open-source, Python package to estimate
Bayesian posteriors and evidences (marginal likelihoods) using Dynamic Nested
Sampling. By adaptively allocating samples based on posterior structure,
Dynamic Nested Sampling has the benefits of Markov Chain Monte Carlo algorithms
that focus exclusively on posterior estimation while retaining Nested
Sampling's ability to estimate evidences and sample from complex, multi-modal
distributions. We provide an overview of Nested Sampling, its extension to
Dynamic Nested Sampling, the algorithmic challenges involved, and the various
approaches taken to solve them. We then examine dynesty's performance on a
variety of toy problems along with several astronomical applications. We find
in particular problems dynesty can provide substantial improvements in sampling
efficiency compared to popular MCMC approaches in the astronomical literature.
More detailed statistical results related to Nested Sampling are also included
in the Appendix.
