Flexible Differentiable Optimization via Model Transformations
  We introduce DiffOpt.jl, a Julia library to differentiate through the
solution of convex optimization problems with respect to arbitrary parameters
present in the objective and/or constraints. The library builds upon
MathOptInterface, thus leveraging the rich ecosystem of solvers and composing
well with modelling languages like JuMP. DiffOpt offers both forward and
reverse differentiation modes, enabling multiple use cases from hyperparameter
optimization to backpropagation and sensitivity analysis, bridging constrained
optimization with end-to-end differentiable programming.
