| Crates.io | montana-cli |
| lib.rs | montana-cli |
| version | 0.0.1 |
| created_at | 2025-12-16 16:53:50.832201+00 |
| updated_at | 2025-12-16 16:53:50.832201+00 |
| description | CLI Utilities |
| homepage | https://github.com/base/montana |
| repository | https://github.com/base/montana |
| max_upload_size | |
| id | 1988264 |
| size | 24,995 |
CLI utilities and argument parsing for Montana, a modular and extensible duplex pipeline for L2 batch submission and derivation.
This crate provides the command-line interface components for Montana, including:
CliThe main CLI argument parser built with clap. Provides the following options:
-v, --verbose: Verbosity level (repeatable flag)-m, --mode: Operation mode (batch, derivation, or roundtrip)-i, --input: Input JSON file path-o, --output: Output JSON file path-c, --compression: Compression algorithm to useModeOperation mode enum with three variants:
Batch (default): Compress and submit L2 blocksDerivation: Decompress and derive L2 blocks from compressed batchesRoundtrip: Batch submission followed by derivation with validationCompressionAlgorithmCompression algorithm selection enum:
Brotli (default): Brotli compressionZlib: Zlib (DEFLATE) compressionZstd: Zstandard compressionAll: Run all compression algorithms and compare resultsProvides the all_algorithms() method to iterate over single compression algorithms (excludes All).
init_tracingFunction to initialize the tracing subscriber with configurable verbosity:
0: WARN level1: INFO level2: DEBUG level3+: TRACE levelRespects the RUST_LOG environment variable for custom filter configuration.
use montana_cli::{Cli, Mode, CompressionAlgorithm, init_tracing};
use clap::Parser;
// Parse CLI arguments
let cli = Cli::parse();
// Initialize tracing based on verbosity
init_tracing(cli.verbose);
// Access CLI options
match cli.mode {
Mode::Batch => {
// Batch submission logic
}
Mode::Derivation => {
// Derivation logic
}
Mode::Roundtrip => {
// Roundtrip validation logic
}
}