# openrtc-file-transfer
Optional native companion for the TypeScript `openrtc-file-transfer` package.
It implements the same version-1 named-channel wire format over any protected
bidirectional byte stream. The crate does not own OpenRTC lifecycle, peer
selection, filesystem policy, persistent queues, history, or UI.
Applications open an authenticated OpenRTC peer stream, then pass it to
`send_path` or `receive_to_directory`. Receivers enforce bounded headers and
file sizes, sanitize filenames, write with `create_new`, verify optional SHA-256
digests incrementally, and acknowledge only after the destination is flushed.
Resume is explicit and fail-closed: an offset is accepted only when the named
destination already exists at exactly that length; any declared digest includes
and verifies the existing prefix before appended bytes are acknowledged.