Difference between OrdinaryDiffEq.jl and DifferentialEquations.jl

Hello,
I have a basic question: I want to know the difference between OrdinaryDiffEq.jl and DifferentialEquations.jl.

I know that OrdinaryDiffEq.jl is a subset of DifferentialEquations.jl but on the user interface, they are very similar.
I am also aware that DifferentialEquations.jl extends itself to the ModelingToolkit,jl framework but when it comes to purely solving ODEs I can see no difference between them.

The reason I ask this is to know which is a recommended package to use for purely solving ODEs.

OrdinaryDiffEq.jl contains the solvers for ODEs and DAEs.

DifferentialEquations.jl is an umbrella package that includes OrdinaryDiffEq.jl, but also packages for other solvers, like SDEs etc.

DifferentialEquations.jl takes longer to precompile and load, so if you only need OrdinaryDiffEq you can use that directly.

With the recent release of DifferentialEquations.jl v8, I’d like to revive this question. It sounds like DifferentialEquations.jl v8 is now just a wrapper for OrdinaryDiffEq.jl, since all of the other packages are no longer re-exported. What do you get by loading DifferentialEquations.jl that you don’t get by just skipping straight to OrdinaryDiffEq.jl? The latest documentation for DifferentialEquations.jl doesn’t make this clear.

not much. DifferentialEquations had the problem that it’s name covered way too much functionality that 99% of people didn’t use which led to it having much worse load time than necessary. Now it’s basically just a thin wrapper over OrdinaryDiffEq.