mirror of
https://github.com/Cian-H/read_aconity_layers.git
synced 2025-12-23 02:31:57 +00:00
69 lines
1.8 KiB
ReStructuredText
69 lines
1.8 KiB
ReStructuredText
####################
|
|
Rust API Reference
|
|
####################
|
|
|
|
This section documents the internal Rust implementation of
|
|
``read_aconity_layers``.
|
|
|
|
.. note::
|
|
|
|
This documentation is primarily intended for contributors and
|
|
developers who want to understand the internal implementation. Most
|
|
users should refer to the :doc:`../python/index` instead.
|
|
|
|
.. toctree::
|
|
:glob:
|
|
:caption: Rust API:
|
|
|
|
crates/read_aconity_layers/lib
|
|
|
|
**********
|
|
Overview
|
|
**********
|
|
|
|
The Rust implementation provides the high-performance core of
|
|
``read_aconity_layers``. Key characteristics include:
|
|
|
|
Performance Features
|
|
====================
|
|
|
|
- **Parallel Processing**: Uses Rayon for parallel file reading across
|
|
all CPU cores
|
|
- **Memory Efficiency**: Streams data rather than loading everything
|
|
into memory at once
|
|
- **SIMD Operations**: Leverages vectorized operations for coordinate
|
|
corrections
|
|
- **Zero-Copy**: Minimizes data copying between Rust and Python using
|
|
PyO3
|
|
|
|
Architecture
|
|
============
|
|
|
|
The crate is organized into two main components:
|
|
|
|
- **Public API** (``src/lib.rs``): PyO3 bindings that expose Rust
|
|
functions to Python
|
|
- **Core Logic** (``src/rust_fn/``): Pure Rust implementation of file
|
|
reading and processing
|
|
|
|
Error Handling
|
|
==============
|
|
|
|
The Rust code uses a comprehensive ``ReadError`` enum that covers all
|
|
possible failure modes, from I/O errors to parsing failures. These are
|
|
automatically converted to appropriate Python exceptions through the
|
|
PyO3 integration.
|
|
|
|
Dependencies
|
|
============
|
|
|
|
Key Rust dependencies that power the performance:
|
|
|
|
- ``ndarray`` - N-dimensional arrays with BLAS integration
|
|
- ``rayon`` - Data parallelism library
|
|
- ``csv`` - Fast CSV parsing
|
|
- ``pyo3`` - Python bindings
|
|
- ``numpy`` - NumPy integration for PyO3
|
|
- ``glob`` - File path pattern matching
|
|
- ``indicatif`` - Progress bars for long operations
|