Hi, welcome, great to see ECMWF interest!
I agree with Fabian’s tips above. Also for vector formats, it is often easiest to define format specific vector types that match well to the format, and providing interoperability with the rest of the ecosystem through an interface package. A good example of such an effort is https://github.com/JuliaData/Tables.jl for different tabular types. For vector types we are attempting a similar approach in https://github.com/yeesian/GeoInterfaceRFC.jl.
Just now I discovered https://github.com/weech/GRIB.jl, which is an interface to the ECMWF ecCodes library. So pinging @weech as well.
Some more related libraries that are good to be aware of:
https://github.com/Alexander-Barth/NCDatasets.jl,
https://github.com/JuliaGeo/CFTime.jl,
https://github.com/JuliaGeo/NetCDF.jl,
https://github.com/meggart/Zarr.jl/
Of course GRIB I/O through GDAL is already possible through the GDAL wrappers, as noted in Is there interest in having a Julian API for the NCDC's Climate Data Online (CDO) - #19 by visr, but that is probably not what you are after.