🔖 File I/O in Julia

General file read / write libraries1

See also

  • Julia IO organization.

  • 🏚️ means the package may not support current versions of Julia.

  • 🏗️ means the package may be a WIP.

General IO

  • FileIO.jl :: general dispatcher for save and load, support for recognizing magic bytes and file-extensions..
  • FileIO2.jl :: File Object Type Hierarchy. Less activity than FileIO.jl.
  • SerialPorts.jl :: SerialPort IO streams in Julia.
  • StructIO.jl :: Experimental new implementation of StrPack.jl-like functionality.
  • ULID.jl :: Generate Universally Unique Lexicographically Sortable Identifiers (ULIDs) in Julia.
WIP or may not work
  • 🏚️ MapD.jl :: A julia library for conveniently inserting data to MapD.

Saving and loading Julia Objects

Similar to pickle in Python.

  • JLD.jl :: High-level interface to HDF5 for saving and loading Julia variables & types
  • JLD2.jl :: Next-generation successor to JLD.

File Formats

Julia itself can read / write TOML files.

  • Avro.jl :: A pure Julia implementation of the Apache Avro data standard
  • BDF.jl :: Module to read Biosemi BDF files with the Julia programming language.
  • BEncode.jl :: A Julia library for BEncode metadata files used for encoding BitTorrent storage and transmission of loosely structured data.
  • BSON.jl :: A Julia package for working with the Binary JSON serialisation format, that can be used as a general store for Julia data structures.
  • FastaIO.jl :: Utilities to read/write FASTA format files in Julia.
  • FlatBuffers.jl :: A package to support Julia code generated by Google’s flatbuffers compiler flatc.
  • FortranFiles.jl :: Read and write “unformatted” Fortran data, i.e. binary data interspersed with metadata about data records.
  • HarwellBoeing.jl :: A reader for matrices and supplementary data written in the Harwell-Boeing format.
  • HDF5.jl :: Lib to read HDF5 format files, a widely-used file format for general data.
  • HDF5Logger.jl :: Allows logging individual frames of data to an HDF5 file over time.
  • NPZ.jl :: Julia package that provides support for reading and writing Numpy .npy and .npz files.
  • OIFITS.jl :: Support for OI-FITS (optical interferometry data format).
  • PdbTool :: An object-oriented Julia tool to parse PDB files and work with them.
  • SASLib.jl :: Provide a Julia library for reading SAS7BDAT data sets.
  • Shapefile.jl :: Parsing .shp files in Julia.
  • YAML.jl :: A flexible data serialization format that is designed to be easily read and written by human beings.
WIP or may not work
  • 🏚️ AIDA.jl :: This package implements simple readers for legacy AIDA files.
  • 🏚️ BDF.jl by @codles :: A fork of BDF.jl that has started to add support for EDF files.
  • 🏚️ BGZF.jl :: A Julia package to read/write BGZF compressed files.
  • 🏚️ COFF.jl :: A julia implementation of the PE/COFF file format.
  • 🏚️ DWARF.jl :: Julia Package for parsing the DWARF file format.
  • 🏚️ ELF.jl :: Julia Package for working with ELF files.
  • 🏚️ Grisu.jl :: Port of Double-Conversion library to native Julia.
  • 🏚️ HexEdit.jl :: Edit and display binary file data in hexadecimal format.
  • 🏚️ IniFile.jl :: Reading and writing Windows-style INI files.
  • 🏚️ LargeColumns.jl :: Handle large columns (vectors of equal length) with bits types in Julia using mmap - a thin wrapper for mmapped binary data, with a few sanity checks and convenience functions.
  • 🏚️ MachO.jl :: An implementation of the MachO file format.
  • 🏚️ MNIST.jl :: Tools for working with the MNIST data set.
  • 🏚️ NetCDF.jl :: NetCDF support for a high-level and a medium-level interface for writing and reading netcdf files, for the Julia programming language.
  • 🏚️ NeuralynxNCS.jl :: A Julia module for reading Neuralynx NCS files.
  • 🏚️ ObjFileBase.jl :: Common functionality for Object Files.
  • 🏚️ OpenSlide.jl :: OpenSlide bindings for Julia.
  • 🏚️ PLX.jl :: Julia module for reading Plexon PLX files.
  • 🏚️ Silo.jl :: Wrapper for the Silo file format (version 4.10.2) in Julia, generated using Clang.jl.
  • 🏚️ Spock.jl :: An interface to Apache Spark for the Julia language.
  • 🏚️ StrPack.jl :: For encoding and decoding binary data streams and there is some documentation at
  • 🏚️ XPT.jl :: The XPT package reads SAS® software transport files and converts SAS software datasets to DataFrames.

JSON files

  • JSON.jl :: JSON parsing and printing.
  • JSON3.jl :: Yet another JSON package for speed and slick struct mapping.
  • JSONTables.jl :: JSON3.jl + Tables.jl.
  • LazyJSON.jl :: LazyJSON is an interface for reading JSON data in Julia programs.
WIP or may not work
  • 🏚️ Json2.jl :: JSON encoder/decoder on Julia.
  • 🏚️ uJSON.jl :: JSON library for Julia using ultraJSON.

Tabular Data

  • Arrow.jl :: Pure Julia implementation of the apache arrow data format.
  • CSV.jl by @JuliaData :: Utility library for working with CSV and other delimited files in the Julia programming language.
  • CSVFiles.jl :: FileIO.jl integration for CSV files.
  • DataRead.jl :: Read files from Stata, SAS, and SPSS.
  • Feather.jl :: Julia library for working with feather(v1)-formatted files.
  • JuliaDB.jl :: JuliaDB is a package for working with large persistent data sets.
  • LAJuliaUtils.jl :: Utility functions for Julia, mainly dataframes operations.
  • MAT.jl :: Julia module for reading MATLAB files.
  • Parquet.jl :: Julia implementation of parquet columnar file format reader and writer.
  • ParquetFiles.jl :: This package provides load support for Parquet files under the FileIO.jl package.
  • ReadWriteDlm2 :: CSV IO. Works like readdlm/writedlm, but using decimal comma by default. Additional supporting Date, DateTime, Time, Complex, Missing and Rational types.
  • Schemata.jl :: Schema (specification of a data set) for tabular data sets in Julia.
  • StatFiles.jl :: FileIO.jl integration for Stata, SPSS, and SAS files
  • Tables.jl :: This package provides four useful interface functions for working with tabular data in a variety of formats. The discourse announcment
  • TableWidgets.jl :: Interactive widgets to work with tabular data in Julia.

XML files

  • EzXML.jl :: XML/HTML handling tools for primates.
  • LibExpat.jl :: A Julia wrapper for libexpat.
  • LightXML.jl :: A light-weight Julia package for XML based on libxml2.
  • mzXML.jl :: A Julia package for reading mass spectrometry mzXML files.
  • XMLDict.jl :: This package implements a simple Associative interface for XML documents.
WIP or may not work
  • 🏚️ EodDataTestXml.jl :: Test files for EodData.jl.
  • 🏚️ MusicXML.jl :: A parser for MusicXML files, designed to be used with the MXMLSynth library.
  • 🏚️ Patchwork.jl :: A library for representing the DOM in Julia. It supports element creation, diff computation and browser-side patching for efficient re-rendering.
  • 🏚️ XML.jl :: A libXML2 wrapper for Julia language.
  • 🏚️ XML2JSON.jl :: This package implements a fairly simplistic XML-to-JSON conversion.
  • 🏚️ XMLconvert.jl :: Functions for converting XML documents to other formats.
  • 🏚️ XMLRPC.jl :: Send and recieve XML-RPCs with Julia.
  • 🏚️ XmlToDict.jl :: Julia module that makes working with XML feel like you are working with JSON (inspired by xmltodict).
  • 🏚️ XDMF.jl :: A standardized method to exchange scientific data between High Performance Computing codes and tools lead to the development of the eXtensible Data Model and Format (XDMF), where the Light data is stored using XML, Heavy data is typically stored using HDF5.

Document Processors

Document Processors for Word, Excel, PDF files.

For Document Generators, see Development tools | documentation.

  • ConfParser.jl :: Package for parsing configuration files utilizing ini, http, and simple configuration syntaxes.
  • ExcelReaders.jl :: A package that provides functionality to read Excel files.
  • LabelNumerals.jl : Numbers used as labels like page number like alpha, roman numerals or prefixed like A-1,2 etc.
  • OdsIO.jl :: Open Document Format Spreadsheet (ODS) I/O for Julia using the python ezodf module.
  • PDFIO.jl :: PDF Reader Library for native Julia.
  • Taro.jl :: process Excel, Word and PDF documents in Julia.


  • Expr2LaTeX.jl :: Take a julia Expr and render it as LaTeX.
  • jlcode :: A latex package for displaying Julia code with the listings package.
  • LaTeX.jl :: Create LaTeX documents from within Julia, including image handling.
  • Latexify.jl :: Convert julia objects to LaTeX equations, arrays or other environments.
  • LatexPrint.jl :: Print Julia objects in a form suitable for LaTeX mathematics mode.
  • LaTeXStrings.jl :: Convenient input and display of LaTeX equation strings for the Julia language.
  • VerTeX.jl :: Typeset scattered graph data rewriter based on LaTeX nodes.
WIP or may not work
  • 🏚️ LaTeXTools.jl :: Tools for automatic manipulation and management of LaTeX Documents.

Image Formats

  • AndorSIF.jl :: This implements support for reading Andor SIF image files in the Julia programming language. Note: The Andor .SIF format changes with each version.
  • DICOM.jl :: DICOM interface for the Julia language.
  • FITSIO.jl :: Flexible Image Transport System (FITS) support for Julia.
  • ImageMagick.jl :: Thin Wrapper for the library ImageMagick, for general-purpose image saving and loading.
  • NIfTI.jl :: Julia module for reading NIfTI MRI files.
  • NRRD.jl :: Julia support for the Nearly Raw Raster Data (NRRD) image file format
  • Netpbm.jl :: Julia support for Netpbm (.ppm, .pgm, .pbm).
  • OMETIFF.jl :: I/O operations for OME-TIFF files in Julia with a focus on correctness.
  • QuartzImageIO.jl :: Thin wrapper around OSX’s native image format saving and loading
  • VideoIO.jl ::Reading and writing of video files in Julia via ffmpeg.
WIP or may not work
  • 🏚️ TIFF.jl :: is the TIFF image file support for Julia.

  1. Julia.jl is under COPYRIGHT © 2012-Now SVAKSHA, dual-licensed for the data (ODbL-v1.0+) and the software (AGPLv3+), respectively. ↩︎