Skip to main content

tzap_core/
lib.rs

1//! Core implementation surface for the tzap v0.44 archive format.
2//!
3//! This crate owns wire-format parsing, validation, crypto, compression, FEC,
4//! and archive read/write primitives. The CLI stays intentionally thin.
5
6pub mod compression;
7pub mod crypto;
8pub mod fec;
9pub mod format;
10pub mod metadata;
11pub mod non_seekable_reader;
12pub mod padding;
13pub mod reader;
14pub mod root_auth;
15pub mod tar_model;
16pub mod wire;
17pub mod writer;
18
19mod raw_stream_profile;
20mod streaming_writer;
21
22pub use crypto::{HmacDomain, KdfParams, MasterKey, Subkeys};
23pub use format::{
24    AeadAlgo, ArchiveWriteError, CompressionAlgo, ExtractError, FecAlgo, FormatError, KdfAlgo,
25    FORMAT_VERSION, VOLUME_FORMAT_REV,
26};
27pub use non_seekable_reader::{
28    extract_non_seekable_stream_to_dir, extract_non_seekable_stream_to_dir_with_bootstrap_sidecar,
29    extract_non_seekable_stream_to_dir_with_recipient_wrap_resolver,
30    extract_non_seekable_stream_to_dir_with_recipient_wrap_resolver_and_bootstrap_sidecar,
31    extract_unencrypted_non_seekable_stream_to_dir,
32    extract_unencrypted_non_seekable_stream_to_dir_with_bootstrap_sidecar,
33    list_non_seekable_stream, list_non_seekable_stream_with_bootstrap_sidecar,
34    list_non_seekable_stream_with_recipient_wrap_resolver,
35    list_non_seekable_stream_with_recipient_wrap_resolver_and_bootstrap_sidecar,
36    list_unencrypted_non_seekable_stream,
37    list_unencrypted_non_seekable_stream_with_bootstrap_sidecar, verify_non_seekable_stream,
38    verify_non_seekable_stream_with_bootstrap_sidecar, verify_non_seekable_stream_with_options,
39    verify_non_seekable_stream_with_recipient_wrap_resolver_and_bootstrap_sidecar,
40    verify_non_seekable_stream_with_recipient_wrap_resolver_options,
41    verify_unencrypted_non_seekable_stream_with_bootstrap_sidecar,
42    verify_unencrypted_non_seekable_stream_with_options, NonSeekableReaderOptions,
43    SequentialExtractReport, SequentialListReport, SequentialRootAuthStatus,
44    SequentialVerifyReport,
45};
46pub use reader::{
47    open_archive, open_archive_unencrypted, open_archive_volumes, open_archive_volumes_unencrypted,
48    open_archive_with_bootstrap_sidecar, open_archive_with_recipient_wrap_resolver,
49    open_non_seekable_archive, open_seekable_archive, open_seekable_archive_volumes,
50    open_seekable_archive_volumes_with_recipient_wrap_resolver_options,
51    open_seekable_archive_with_bootstrap_sidecar,
52    open_seekable_archive_with_bootstrap_sidecar_options,
53    open_seekable_archive_with_recipient_wrap_resolver_options, public_no_key_verify_archive_with,
54    public_no_key_verify_volumes_with, public_no_key_verify_volumes_with_options,
55    sequential_extract_tar_stream, ArchiveContentVerification, ArchiveEntry,
56    ArchiveExtractProgressSink, ArchiveIndexEntry, ArchiveReadAt, ArchiveRepairPatch,
57    OpenedArchive, PublicNoKeyDiagnostic, PublicNoKeyVerification, ReaderOptions,
58    RecipientWrapArchiveIdentity, RecipientWrapCandidateMasterKey, RecipientWrapRecordContext,
59    RootAuthDiagnostic, RootAuthVerification,
60};
61pub use streaming_writer::{
62    write_sized_raw_member_archive_to_sink_with_kdf_and_root_auth, write_tar_stream_archive,
63    write_tar_stream_archive_to_sink, write_tar_stream_archive_to_sink_with_kdf_and_root_auth,
64    StreamingRawWriterSummary, StreamingTarWriterSummary,
65};
66pub use tar_model::{MetadataDiagnostic, SafeExtractionOptions, TarEntryKind};
67pub use writer::{
68    write_archive, write_archive_sources_to_sink, write_archive_sources_to_sink_ordered_parallel,
69    write_archive_sources_to_sink_ordered_parallel_with_progress,
70    write_archive_sources_to_sink_ordered_parallel_with_recipient_wrap_records,
71    write_archive_sources_to_sink_single_pass,
72    write_archive_sources_to_sink_single_pass_with_progress,
73    write_archive_sources_to_sink_single_pass_with_recipient_wrap_records,
74    write_archive_sources_to_sink_with_progress, write_archive_unencrypted,
75    write_archive_with_dictionary, write_archive_with_dictionary_and_kdf,
76    write_archive_with_dictionary_and_root_auth, write_archive_with_dictionary_kdf_and_root_auth,
77    write_archive_with_kdf, write_archive_with_recipient_wrap_records,
78    write_archive_with_root_auth, write_archive_with_root_auth_and_kdf, write_empty_archive,
79    ArchiveWriteProgressSink, ArchiveWriteSink, KeyWrapRecordSource, MemoryArchiveSink,
80    RegularFile, RegularFileSource, RootAuthSigningRequest, RootAuthWriterConfig, WriterOptions,
81    WriterTimings, WrittenArchiveSummary,
82};