tdms-rs
A pure Rust library for reading and writing National Instruments TDMS (Technical Data Management Streaming) files with high performance and zero-copy capabilities.
🚀 Key Features
- ⚡ High Performance: Designed for high-throughput I/O. Achieves near-disk bandwidth by minimizing syscalls and using efficient buffer management.
- 📦 Lazy Loading: Only loads data when requested. Metadata is indexed eagerly, while raw data is read on-demand to minimize memory footprint.
- 🛡️ Type Safe: Strongly-typed channel access ensures data integrity at compile time.
- 🔗 Pure Rust: No external C dependencies, making cross-compilation seamless.
- 📊 Full Format Support: Supports all TDMS data types, hierarchical structures, and multi-segment files (Little-Endian).
📖 Documentation
- Quick Start Guide - Get up and running in minutes.
- Architecture & Design - Deep dive into internal reader/writer models and performance tradeoffs.
- API Reference (docs.rs) - Detailed module and function-level documentation.
🛠️ Quick Start
Reading
use TdmsFile;
Writing
use TdmsWriter;
📐 Philosophy & Guarantees
- Memory Efficiency: Never load data you don't ask for. Metadata is indexed; raw data is lazy-loaded.
- Safety First: Safe wrappers around
unsafememory operations. - Modern MSRV: Supports the latest stable Rust features.
🤝 License
Licensed under either of Apache License 2.0 or MIT License at your option.