Skip to main content

tzap_core/
lib.rs

1//! Core implementation surface for the tzap v0.43 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_unencrypted_non_seekable_stream_to_dir,
30    extract_unencrypted_non_seekable_stream_to_dir_with_bootstrap_sidecar,
31    list_non_seekable_stream, list_non_seekable_stream_with_bootstrap_sidecar,
32    list_unencrypted_non_seekable_stream,
33    list_unencrypted_non_seekable_stream_with_bootstrap_sidecar, verify_non_seekable_stream,
34    verify_non_seekable_stream_with_bootstrap_sidecar, verify_non_seekable_stream_with_options,
35    verify_unencrypted_non_seekable_stream_with_bootstrap_sidecar,
36    verify_unencrypted_non_seekable_stream_with_options, NonSeekableReaderOptions,
37    SequentialExtractReport, SequentialListReport, SequentialRootAuthStatus,
38    SequentialVerifyReport,
39};
40pub use reader::{
41    open_archive, open_archive_unencrypted, open_archive_volumes, open_archive_volumes_unencrypted,
42    open_archive_with_bootstrap_sidecar, open_non_seekable_archive, open_seekable_archive,
43    open_seekable_archive_volumes, open_seekable_archive_with_bootstrap_sidecar,
44    open_seekable_archive_with_bootstrap_sidecar_options, public_no_key_verify_archive_with,
45    public_no_key_verify_volumes_with, public_no_key_verify_volumes_with_options,
46    sequential_extract_tar_stream, ArchiveContentVerification, ArchiveEntry,
47    ArchiveExtractProgressSink, ArchiveIndexEntry, ArchiveReadAt, ArchiveRepairPatch,
48    OpenedArchive, PublicNoKeyDiagnostic, PublicNoKeyVerification, ReaderOptions,
49    RootAuthDiagnostic, RootAuthVerification,
50};
51pub use streaming_writer::{
52    write_sized_raw_member_archive_to_sink_with_kdf_and_root_auth, write_tar_stream_archive,
53    write_tar_stream_archive_to_sink, write_tar_stream_archive_to_sink_with_kdf_and_root_auth,
54    StreamingRawWriterSummary, StreamingTarWriterSummary,
55};
56pub use tar_model::{MetadataDiagnostic, SafeExtractionOptions, TarEntryKind};
57pub use writer::{
58    write_archive, write_archive_sources_to_sink, write_archive_sources_to_sink_ordered_parallel,
59    write_archive_sources_to_sink_ordered_parallel_with_progress,
60    write_archive_sources_to_sink_single_pass,
61    write_archive_sources_to_sink_single_pass_with_progress,
62    write_archive_sources_to_sink_with_progress, write_archive_unencrypted,
63    write_archive_with_dictionary, write_archive_with_dictionary_and_kdf,
64    write_archive_with_dictionary_and_root_auth, write_archive_with_dictionary_kdf_and_root_auth,
65    write_archive_with_kdf, write_archive_with_root_auth, write_archive_with_root_auth_and_kdf,
66    write_empty_archive, ArchiveWriteProgressSink, ArchiveWriteSink, MemoryArchiveSink,
67    RegularFile, RegularFileSource, RootAuthSigningRequest, RootAuthWriterConfig, WriterOptions,
68    WriterTimings, WrittenArchiveSummary,
69};