Skip to main content

ferray_io/
lib.rs

1// ferray-io: NumPy-compatible file I/O (.npy, .npz, memory-mapped, text)
2//
3//! This crate provides functions for reading and writing N-dimensional arrays
4//! in NumPy-compatible formats:
5//!
6//! - **`.npy`** — single array binary format ([`npy::save`], [`npy::load`], [`npy::load_dynamic`])
7//! - **`.npz`** — zip archive of `.npy` files ([`npz::savez`], [`npz::savez_compressed`])
8//! - **Text I/O** — delimited text files ([`text::savetxt`], [`text::loadtxt`], [`text::genfromtxt`])
9//! - **Memory mapping** — zero-copy file-backed arrays ([`memmap::memmap_readonly`], [`memmap::memmap_mut`])
10
11// I/O code parses byte-level header fields, encodes/decodes shape and
12// stride arrays as `usize <-> u64`, and converts text-format columns
13// across width-narrowing types as part of the dtype contract.
14#![allow(
15    clippy::cast_possible_truncation,
16    clippy::cast_possible_wrap,
17    clippy::cast_precision_loss,
18    clippy::cast_sign_loss,
19    clippy::cast_lossless,
20    clippy::missing_errors_doc,
21    clippy::missing_panics_doc,
22    clippy::many_single_char_names,
23    clippy::similar_names,
24    clippy::items_after_statements,
25    clippy::option_if_let_else,
26    clippy::too_long_first_doc_paragraph,
27    clippy::needless_pass_by_value,
28    clippy::match_same_arms
29)]
30
31pub mod datasource;
32pub mod format;
33pub mod memmap;
34pub mod npy;
35pub mod npz;
36pub mod text;
37
38// Re-export the most commonly used items at crate root for convenience.
39pub use datasource::{DataSource, DataSourceReader};
40pub use format::{
41    HeaderData, MemmapMode, descr_to_dtype, header_data_from_array_1_0, read_array, write_array,
42};
43pub use npy::{NpyElement, load, load_dynamic, save};
44pub use npz::{NpzFile, savez, savez_compressed};
45pub use text::{SaveTxtOptions, fromregex, fromregex_from_file, genfromtxt, loadtxt, savetxt};