Hi there, FileIO has the aim to make it very easy to read any arbitrary file. I hastily copied together a proof of concept by taking code from Images.jl.
JuliaIO is the umbrella group, which takes IO packages with no home. If someone wrote an IO package, but doesn't have time to implement the FileIO interface, giving it to JuliaIO might be a good idea in order to keep the package usable. Concept of FileIO is described in the readme: Meta package for FileIO. Purpose is to open a file and return the respective Julia object, without doing any research on how to open the file. f = file"test.jpg" # -> File{:jpg}read(f) # -> Imageread(file"test.obj") # -> Meshread(file"test.csv") # -> DataFrame So far only Images are supported and MeshIO is on the horizon. It is structured the following way: There are three levels of abstraction, first FileIO, defining the file_str macro etc, then a meta package for a certain class of file, e.g. Images or Meshes. This meta package defines the Julia datatype (e.g. Mesh, Image) and organizes the importer libraries. This is also a good place to define IO library independant tests for different file formats. Then on the last level, there are the low-level importer libraries, which do the actual IO. They're included via Mike Innes Requires <https://github.com/one-more-minute/Requires.jl> package, so that it doesn't introduce extra load time if not needed. This way, using FileIO without reading/writing anything should have short load times. As an implementation example please look at FileIO -> ImageIO -> ImageMagick. This should already work as a proof of concept. Try: using FileIO # should be very fast, thanks to Mike Innes Requires packageread(file"test.jpg") # takes a little longer as it needs to load the IO libraryread(file"test.jpg") # should be fastread(File("documents", "images", "myimage.jpg") # automatic joinpath via File constructor Please open issues if things are not clear or if you find flaws in the concept/implementation. If you're interested in working on this infrastructure I'll be pleased to add you to the group JuliaIO. Best, Simon