Skip to content

Latest commit

 

History

History
47 lines (41 loc) · 3.38 KB

modules.md

File metadata and controls

47 lines (41 loc) · 3.38 KB

Modules (English)

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.

Conventions

  • Errors carry a code (domain::snake_case), defined in EnkryptitError::code().
  • Public types implement std::fmt::Display + TryFrom/FromStr in conversions.rs.
  • No unsafe in the crate; memory locking is delegated to the mlock-backing key type.
  • Enum names are un-prefixed (a KeyType without an Enkryptit prefix).

Related

  • Architecture — how these pieces interact.
  • Description of each public type lives in the rustdoc generated by cargo xtask doc.