Obviously a corporation like Mathworks (for all its limitations) shines in its ability to define an official serialization interface: .mat (complexity of .mat versions aside)
Is there any plan to do the same for JLDx? eg “everybody just use JLD2 from now on”.
-edit-
Just read this, now I’m even more confused, lol
Sometimes its good to have an open community building a ton of alternatives, sometimes it’s not as good. I think this is a place where it hasn’t turned out so good and someone needs to sit down and consolidate it. The summary right now is:
Julia’s serialization is the best, but cannot necessarily cross versions.
HDF5 is stable and won’t change, but that means it supports the basics (arrays and such), and that’s pretty much what it will do.
JLD2 is great and got new maintainers. That might mean it’s the thing to use from now on, but I haven’t tried it since it got the new crew.
BSON has some architectural issues and is in a maintenance state where it won’t change much.
JSON is pretty nice if it works for the types you’re using.
Anything else I wouldn’t consider, or at least, it’s “use at your own risk” levels of maintenance and use by the community.
With one caveat: unless you can lock all package versions in a Manifest.toml file, avoid serializing types that you don’t own or aren’t in base. Package updates can change things that will break your .jld2 file.
If you want to store in binary and reliability, long-term restorability, and, perhaps, cross language readability are important in your context I would go with HDF5. Basically every programming language supports it and although it only supports “basic objects” I never found this to be a big issue.