Skip to main content

Crate pithos_lib

Crate pithos_lib 

Source
Expand description

Pithos archive reading, writing, Linux filesystem operations, and presentation adapters.

§Public archive API

Create archives with archive::ArchiveWriter, then open them through archive::Archive and an immutable source::ArchiveSource. Create either a base archive with archive::WriteOptions::base for local, uncompressed, unencrypted content, or an encrypted archive with a sender key and one or more recipient public keys. Opening encrypted content requires the matching recipient private key in archive::AccessKeys.

Payload integrity is checked when bytes are read, not when the archive is opened. In particular, archive::Archive::copy_to and archive::Archive::copy_range_to verify each full block before releasing bytes from that block. A generic sink can retain earlier verified output if a later block fails. For Linux paths, fs::extract instead stages each regular file and publishes it without replacing an existing destination entry.

The compiled examples cover creation, listing, range reads, extraction, append and reader grants, RO-Crate conversion, and Crypt4GH export. They use only this public boundary and perform no network operations.

The Linux filesystem adapter is intentionally host-specific. Core archive reading and writing remain independent of filesystem traversal and presentation formats.

Internal format types and compatibility modules are deliberately not part of the public API:

ⓘ
use pithos_lib::model::structs::Directory;
ⓘ
use pithos_lib::helpers::directory::DirectoryBuilder;
ⓘ
use pithos_lib::format::header::FileHeader;

Modules§

adapters
Presentation adapters for external archive formats.
archive
Validated, immutable archive state.
crypto
Current Pithos cryptographic roles and protocol operations.
error
fs
Linux filesystem adapters.
source