7 个版本

0.1.6 2024年1月30日
0.1.5 2024年1月30日

#808命令行界面

每月下载量 45

MIT 许可证

14KB
385

mysh-rs

mysh,代表 "My Shell",是一个用于快速构建小型交互式 shell 的 Rust 库。

用法

[dependencies]
mysh = "0.1.1"
futures = "0.3"
use mysh::macros::{command, CommandArg};
use serde::Deserialize;

#[derive(CommandArg, Deserialize, Clone)]
pub struct Args {
  name: String,
}

#[command(
  name = "hello",
  description = "Prints hello world",
  long_description = "Prints hello world" // optional
)]
pub async fn hello(_: UserInfo, args: Args) -> Result<(), mysh::error::Error> {
  println!("Hello {}", args.name);
  Ok(())
}
use mysh::shell::Shell;
use tokio;

#[derive(Clone)]
pub struct UserInfo {}

// #[tokio::main] // or
#[actix_rt::main]
async fn main() {
  Shell::new(UserInfo {})
    .add_command(hello)
    .run()
    .await;
}

触发读取-评估-打印循环

cargo run

>> hello --name World
Hello World

运行单个命令

cargo run -- hello --name World
Hello World

运行示例

cargo run -p simple

依赖项

~8–19MB
~271K SLoC