I/O, Compression and Storage Components
Streams, files, directories, compression, ZIP, hashing, storage and isolated storage.
Targets in this family
| Component | Kind | Production dependencies | Representative header |
|---|---|---|---|
IO | static | Core.Base, Uri, TimeZone (private) | System/BinaryData.hpp |
IO.Compression | static | Buffers, Core.Base, IO | System/IO/Compression/CompressionArgumentValidation.hpp |
IO.Compression.Zip | static | IO, Core.Base (private) | System/IO/Compression/CompressionLevel.hpp |
IO.Hashing | static | Core.Base, IO | System/IO/Hashing/Adler32.hpp |
Storage | static | — | SharpRuntime/Storage/StoragePaths.hpp |
IO.IsolatedStorage | static | Core.Base, IO, Storage (private) | System/IO/IsolatedStorage/IsolatedStorage.hpp |
Streams and files
IO owns Stream, MemoryStream and file/directory/path surfaces plus readers, writers and filesystem-related helpers. Capability queries, disposal and argument validation have been heavily audited; use virtual capability members instead of assuming every stream supports read/write/seek.
Compression and ZIP
IO.Compression privately finds ZLIB and owns streaming compression behavior. IO.Compression.Zip privately embeds miniz for archive operations. These are separate physical components so selecting ZIP or compression is explicit.
Hashing
IO.Hashing provides non-cryptographic hashing/checksum types including Adler32 and related algorithms. Do not treat this namespace as a replacement for cryptographic hashing or authentication.
Storage
Storage resolves platform storage paths and can consume a parent-provided SDL3 target on Android. IO.IsolatedStorage builds confinement semantics over I/O and storage paths; it is not a security sandbox against an adversarial process.
Use RAII and keep streams/resources scoped. Compatibility-shaped Dispose calls do not remove normal C++ ownership responsibilities.
Complete catalogue
See all 41 physical components for external dependencies, ownership and direct graph details.