jmix_rs/
lib.rs

1//! JMIX-RS: Rust library for JMIX (JSON Medical Interchange) format
2//!
3//! Secure medical data exchange with cryptographic features including:
4//! - AES-256-GCM encryption with ECDH key exchange
5//! - Ed25519 digital signatures and JWS support
6//! - JSON Schema validation
7//! - DICOM metadata extraction
8//! - Envelope creation and processing
9//! - Performance optimization through skip flags
10//!
11//! ## Performance Optimization
12//!
13//! The library supports two performance flags for large datasets:
14//!
15//! - `skip_hashing`: Skips SHA256 hash computation for files and payload.
16//!   When enabled, hash fields are set to `None` and payload hash is set to
17//!   `"sha256:skipped"` placeholder.
18//!
19//! - `skip_listing`: Skips adding DICOM files to the files.json manifest.
20//!   Files are still copied to the payload but not indexed. Only metadata.json
21//!   and report files (if present) are listed.
22//!
23//! These flags can significantly improve performance when processing large
24//! DICOM datasets where hash verification or file indexing is not required.
25
26pub mod assertion;
27pub mod builder;
28pub mod config;
29pub mod dicom;
30pub mod encryption;
31pub mod error;
32pub mod jws;
33pub mod package_validation;
34pub mod types;
35pub mod validation;
36
37#[cfg(test)]
38mod tests;
39
40pub use package_validation::{validate_package, ValidationOptions, ValidationReport};
41
42// Re-export commonly used types
43pub use config::Config;
44pub use error::{JmixError, JmixResult};
45pub use types::{Audit, Envelope, Manifest, Metadata};