Generic serialization API

Many file format packages have their own serialization and deserialization functions, with different APIs.

I would like to have a single unified API.

For example,

  • serialize(data::Serializable, target::AbstractTarget, format::AbstractFormat)
  • deserialize(source::AbstractTarget, format::AbstractFormat)

Or,

  • serialize(data::Serializable, target::Target{Format})
  • deserialize(source::Target{Format})

Or similar. I’m not sure about the output types.

What do you think about this idea?