Salvus provides a robust and extensible interface to a purpose-built nonlinear optimization library for full-waveform inversion. By leveraging adjoint functionality, checkpointing and GPU accelerators, Salvus efficiently computes sensitivities with respect to a variety of model parameters. The inversion framework provides powerful workflows, data management and remote job execution while offering the flexibility to interface with custom misfit and processing functions. Our portfolio of use cases includes subsurface exploration, nuclear explosion monitoring, continental-scale seismology, nondestructive testing, and medical imaging.