rustpix-io
Memory-mapped file I/O and output writers for rustpix.
Features
- Memory-Mapped Reading: Efficient large file handling with memmap2
- Multiple Output Formats: HDF5, Arrow/Parquet, CSV
- Streaming Writers: Write data incrementally without buffering
- Metadata Preservation: Store detector configuration and processing parameters
Usage
Memory-Mapped Reading
use MmapReader;
let reader = open?;
let data = reader.read_region?;
HDF5 Output
use Hdf5Writer;
let mut writer = create?;
writer.write_neutrons?;
writer.write_metadata?;
CSV Output
use CsvWriter;
let mut writer = create?;
for batch in neutron_stream
HDF5 Schema
output.h5
├── neutrons/
│ ├── x (f64) X coordinates
│ ├── y (f64) Y coordinates
│ ├── toa (u64) Time of Arrival
│ ├── tot_sum (u32) Total TOT
│ └── size (u32) Cluster size
└── metadata/
├── version
├── algorithm
└── parameters
Optional Features
hdf5- Enable HDF5 output (requires static linking)serde- Enable serialization support
License
MIT License - see LICENSE for details.