Expand description
HEDL CLI library for command-line parsing and execution.
This library provides the core functionality for the HEDL command-line interface, including all command implementations for validation, formatting, linting, and format conversion operations.
§Commands
The CLI provides the following commands:
§Validation & Inspection
- validate: Validate HEDL file syntax and structure
- inspect: Visualize HEDL internal structure with tree view
§Formatting & Canonicalization
- format: Format HEDL files to canonical form
- lint: Lint HEDL files for best practices and style
§Format Conversion
Bidirectional conversion between HEDL and popular data formats:
- to-json/from-json: JSON conversion (compact and pretty)
- to-yaml/from-yaml: YAML conversion
- to-xml/from-xml: XML conversion (compact and pretty)
- to-csv/from-csv: CSV conversion (tabular data)
- to-parquet/from-parquet: Apache Parquet conversion (columnar)
§Analysis & Statistics
- stats: Compare size and token efficiency vs other formats
§Utilities
- completion: Generate shell completion scripts (bash, zsh, fish, powershell, elvish)
§Batch Processing
- batch-validate: Validate multiple files in parallel
- batch-format: Format multiple files in parallel
- batch-lint: Lint multiple files in parallel
§Examples
§Validation
use hedl_cli::commands::validate;
// Validate a HEDL file
validate("example.hedl", false)?;
// Strict validation (all references must resolve)
validate("example.hedl", true)?;§Format Conversion
use hedl_cli::commands::{to_json, from_json};
// Convert HEDL to pretty JSON
to_json("data.hedl", Some("output.json"), false, true)?;
// Convert JSON back to HEDL
from_json("data.json", Some("output.hedl"))?;§Batch Processing
use hedl_cli::commands::batch_validate;
// Validate multiple files in parallel
// Args: patterns, strict, recursive, max_depth, parallel, verbose
let files = vec!["file1.hedl".to_string(), "file2.hedl".to_string()];
batch_validate(files, false, true, 10, true, false)?;§Security
The CLI includes several security features:
- File size limits: Prevents OOM attacks (configurable via
HEDL_MAX_FILE_SIZE) - Input validation: Type names and parameters are validated
- Safe conversions: All format conversions use safe, well-tested libraries
§Performance
- Parallel processing: Batch commands automatically use parallel processing
- Optimized stats: Format conversions run in parallel (3-5x speedup)
- Memory efficiency: Streaming where possible, size checks before reading
§Error Handling
All commands return Result<(), String> for consistent error handling.
Errors are descriptive and include context like file paths and line numbers
where applicable.
Modules§
- batch
- Batch processing for multiple HEDL files with parallel execution and progress reporting.
- cli
- CLI command definitions and argument parsing.
- commands
- CLI command implementations
- error
- Structured error types for the HEDL CLI.
- file_
discovery - File discovery with glob patterns and recursive traversal.
Structs§
- CliCommand
- Shared CLI command structure for HEDL.
Functions§
- create_
cli_ command - Create a clap Command for shell completion generation.