ripsync_core/io/mod.rs
1//! Low-level I/O backends.
2//!
3//! The portable path (reflink / `copy_file_range` / buffered) lives in
4//! [`crate::copy`]. On Linux an optional [`uring`] backend batches many
5//! small-file copies through a single `io_uring` to cut syscall overhead. On
6//! Windows [`windows`] provides `ReFS` block-clone, `CopyFileExW`, and atomic
7//! replace via `MoveFileExW`.
8
9#[cfg(all(target_os = "linux", feature = "io-uring"))]
10pub mod uring;
11
12#[cfg(all(target_os = "linux", feature = "io-uring"))]
13pub use uring::kernel_supports_splice;
14
15#[cfg(target_os = "macos")]
16pub mod macos;
17
18#[cfg(windows)]
19pub mod windows;