crates/polars-arrow/src/io/README.md
This document describes the overall design of this module.
Each directory in this module corresponds to a specific format such as csv and json.
directories that depend on external dependencies MUST be feature gated, with a feature named with
a prefix io_.
modules MUST re-export any API of external dependencies they require as part of their public API. E.g.
write(writer: &mut csv:Writer<W>, ...), it MUST contain
pub use csv::Writer;.The rational is that adding this crate to cargo.toml must be sufficient to use it.
Each directory SHOULD contain two directories, read and write, corresponding to functionality
about reading from the format and writing to the format respectively.
The base module SHOULD contain use pub read; and use pub write;.
Implementations SHOULD separate reading of "data" from reading of "metadata". Examples:
Implementations SHOULD separate IO-bounded operations from CPU-bounded operations. I.e. implementations SHOULD:
Read implementor and output a "raw" struct, i.e. a struct
that is e.g. compressed and serialized