Crate xacli

Crate xacli 

Source
Expand description

XaCLI - A modern, developer-friendly CLI framework for Rust

This crate serves as a facade for the xacli ecosystem, re-exporting functionality from:

  • xacli-core: Core command parsing and execution
  • xacli-components: Interactive terminal components (feature: components)
  • xacli-derive: Derive macros for CLI apps (feature: derive)
  • xacli-testing: Testing utilities (feature: testing)

§Example

use xacli::{App, Command, Arg};

App::new("myapp", "1.0.0")
    .command(
        Command::new("greet")
            .description("Greet someone")
            .run(Box::new(|ctx| {
                println!("Hello!");
                Ok(())
            }))
    )
    .execute()?;

§Features

  • components: Interactive terminal components (input, select, confirm, etc.)
  • derive: Derive macros (#[derive(App)], #[derive(Command)])
  • testing: Testing utilities for CLI apps
  • cli: CLI binary tooling (includes derive and testing)

§Installation

As a library:

cargo add xacli
cargo add xacli --features derive
cargo add xacli --features components

As a CLI tool:

cargo install xacli --features cli

Modules§

prelude
Prelude for convenient imports

Structs§

App
AppContext
Standard context implementation using stdin/stdout/stderr
AppInfo
Arg
ArgInfo
Command
CommandInfo
ComponentInfo
ContextInfo
Context metadata
Output
Parsed
Parsed command-line arguments result

Enums§

ArgKind
Kind of argument (positional, flag, or option)
ArgType
Argument value types
Error
Errors that can occur during command parsing and execution
InputEvent
Represents an event.
InputValue
OutputCommand
完整的终端控制命令枚举

Constants§

VERSION

Traits§

Completer
Provides dynamic completion suggestions
Context
InputComponent
Interactive component that runs with a context
Logger
OutputComponent
Interactive component that produces output
Prompter
Prompts user for input interactively
ReadEvent
Validator
Validates an argument value

Type Aliases§

Result
Result type alias for XaCLI operations