How bee-san/ciphey works
Ciphey is a library-first tool that searches for decoding paths and identifies likely plaintext; the CLI is one interface to the library. Its principal workflow accepts text, selects decoders, runs them under a search strategy, checks candidate output, and presents results. The repository also documents timeout handling, configurable and enhanced plaintext detection, multilevel decoding, statistics, and custom themes. Some relationships and capability implementations are based on README or source-index references; unsampled code is not treated as inspected.
Main entry points: lib.rs Library API · astar.rs A* search · athena.rs Plaintext detection · mod.rs CLI
Components 19
User interfaces
- CLI
src/cli/mod.rs - Input parsing
src/cli_input_parser/mod.rs - Library input
src/api_library_input_struct.rs - CLI output
src/cli_pretty_printing/mod.rs
Decode orchestration
- Library API
src/lib.rs - A* search
src/searchers/astar.rs - Search helpers
src/searchers/helper_functions.rs - Decoder selection
src/filtration_system/mod.rs
Decoding and detection
- Decoder implementations
src/decoders - Decoder contract
src/decoders/interface.rs - Vigenère decoder
src/decoders/vigenere_decoder.rs - Decode results
src/decoders/crack_results.rs - Plaintext detection
src/checkers/athena.rs - Checker types
src/checkers/checker_type.rs
Configuration and state
- Runtime configuration
src/config/mod.rs - Timeout handling
src/timer/mod.rs - Statistics database
src/storage/database.rs - Collected plaintexts
src/storage/wait_athena_storage.rs
Other components
- User or API client
Connections 23
- User or API client → CLI: invokes
- CLI → Input parsing: parses input
src/cli_input_parser/mod.rs - Input parsing → Library input: builds input
src/cli_input_parser/mod.rs - CLI → Library API: uses library
src/lib.rs - Library API → Library input: accepts input
src/lib.rs - Library API → A* search: starts search
src/lib.rs - Library API → Runtime configuration: uses settings
src/lib.rs - A* search → Decoder selection: gets decoders
src/searchers/mod.rs - A* search → Search helpers: uses helpers
src/searchers/mod.rs - A* search → Plaintext detection: checks candidates
src/searchers/mod.rs - Decoder selection → Decoder implementations: selects decoders
src/filtration_system/mod.rs - Decoder selection → Plaintext detection: runs candidates
src/filtration_system/mod.rs - Decoder implementations → Decoder contract: implements
src/decoders/mod.rs - Vigenère decoder → Decoder contract: implements
src/decoders/vigenere_decoder.rs - Decoder implementations → Plaintext detection: checks output
src/decoders/a1z26_decoder.rs - Decoder implementations → Decode results: returns results
src/decoders/interface.rs - Plaintext detection → Checker types: returns check result
src/checkers/athena.rs - CLI → CLI output: prints results
src/cli/mod.rs - CLI output → Runtime configuration: reads theme
src/cli_pretty_printing/mod.rs - A* search → Timeout handling: uses timeout
- Plaintext detection → Collected plaintexts: collects results
- CLI output → Collected plaintexts: reads collected results
src/cli_pretty_printing/mod.rs - Library API → Statistics database: records statistics
src/lib.rs