Map of eck/src, grouped by area.
| Path | Responsibility |
|---|---|
main.rs |
Binary entry. clap parser (name eck, version 0.0.3), subcommands, dispatch to CLI/TUI. |
frontend/cli.rs |
CLI rendering: params_helpers (show/update), treatment (multi-path), inspection. |
frontend/tui.rs |
Interactive loop Browse / Parameters / Help / Exit; TuiInput is mockable. |
treatment/mod.rs |
treat_object dispatcher; ParsedFile; folder vs. file branch. |
inspect/mod.rs |
InspectionReport { PlaintextFile, EncryptedFile, EncryptedArchive, Folder }, comfy-table display, invocation snippet. |
types/enkryptit_key.rs |
EnkryptitKey { key: LockedKey, key_type }, type classify helpers. |
types/key_type.rs |
KeyType { Password, Pwd256([u8;16]), FromFile, FromOS, None }. |
types/compression_type.rs |
CompressionType { Auto, Lz4, Zstd, Xz, NoComp }. |
types/parallelism_type.rs |
ParallelismType { Auto, MultiThread(u8), Single }. |
types/params.rs |
EnkryptitParams { key_params, compression, parallelism }, defaults {PassWord, Auto, Auto}, config round-trip. |
types/metadatas.rs |
MetaDatas, ArchiveHeader (magic, version, is_folder_archive, meta_len), FileEntry, postcard. |
types/conversions.rs |
To/from string + internal conversions. |
parameters/mod.rs |
Loading/saving config.json, ECK_CONFIG_PATH override, resolution helpers. |
context/compression.rs |
infer_compression from file-type hint + size thresholds. |
context/parallel.rs |
infer_parallelism from size + available_parallelism. |
encryption/mod.rs |
Encryption orchestration. |
encryption/encryption_flow.rs |
encrypt_stream / decrypt_stream, chunking. |
encryption/chunk_job.rs |
EncryptChunkJob / DecryptChunkJob, ChunkResult { index, data }. |
encryption/encryption_primitives.rs |
XChaCha20-Poly1305; derive_nonce(master_nonce, step). |
encryption/file_encryption/ |
Single-file .encky handling. |
encryption/folder_encryption/ |
Folder archive (v2 head-patchable format). |
key/derivation.rs |
Argon2id KDF (128 MiB, 3 iterations, 1 lane, 32 bytes). |
key/resolve.rs |
Key unlock paths: password prompt, ~/private_keys/enkryptit_<stem>, OS keyring (ENKRYPTIT service). |
parallelism/ |
EnkryptitPool, EnkryptitWorker, EnkryptitJob, EnkryptitExecutable trait. |
compression.rs |
EnkryptitCompress/EnkryptitDecompress for zstd, lz4_flex, xz2. |
diagnostic/mod.rs |
EnkryptitOutput kinds, DOC_URL, logging (tracing, daily rotation). |
diagnostic/errors_builder.rs |
EnkryptitTraitBuilder mapping errors to diagnostics. |
errors.rs |
EnkryptitError variants + code() table (crypto::, comp::, ui::, format::, io::, misc::). |
directory.rs |
ProjectDirs::from("com", "olruix", "Enkryptit") for config + logs. |
- Errors carry a code (
domain::snake_case), defined inEnkryptitError::code(). - Public types implement
std::fmt::Display+TryFrom/FromStrinconversions.rs. - No
unsafein the crate; memory locking is delegated to themlock-backing key type. Enumnames are un-prefixed (aKeyTypewithout anEnkryptitprefix).
- Architecture — how these pieces interact.
- Description of each public type lives in the rustdoc generated by
cargo xtask doc.