# RCli **Repository Path**: huangke0802/rcli ## Basic Information - **Project Name**: RCli - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-28 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RCLI rcli 是一个 Rust 命令行工具,包含多种实用功能,如 CSV 处理、密码生成、Base64 编解码、文本签名和 HTTP 服务。 ## 功能特性 ### CSV 处理 - 将 CSV 文件转换为 JSON 或 YAML 格式 - 支持自定义分隔符 - 可选的表头处理 - 灵活的输出配置 - 自动输出文件扩展名检测 ### 密码生成 - 生成安全的随机密码 - 可自定义密码长度 - 可选字符集(大写字母、小写字母、数字、符号) - 灵活的密码复杂度选项 ### Base64 编解码 - 支持标准 Base64 编码和解码 - 支持 URL 安全的 Base64 编码和解码 - 支持从文件或标准输入读取数据 ### 文本签名和验证 - 支持 Blake3 和 Ed25519 签名算法 - 生成签名密钥 - 验证文本数据的签名 - 支持从文件或标准输入读取数据 ### HTTP 服务器 - 从目录提供 HTTP 文件服务 - 可自定义端口 - 简单的文件服务功能 ## 安装 ### 从源码安装 ```bash git clone git@gitee.com:huangke0802/rcli.git cd rcli cargo build --release ``` 编译后的二进制文件位于 `target/release/rcli`。 ## 使用方法 ### CSV 命令 #### 基本用法 将 CSV 文件转换为 JSON(默认): ```bash rcli csv -i input.csv ``` 将 CSV 文件转换为 YAML: ```bash rcli csv -i input.csv --format yaml ``` #### 命令选项 - `-i, --input ` - 输入 CSV 文件(必需) - `-o, --output ` - 输出文件(可选,默认为 output.json 或 output.yaml,根据格式决定) - `-f, --format ` - 输出格式:json 或 yaml(默认:json) - `-d, --delimiter ` - CSV 分隔符字符(默认:',') - `--header` - CSV 是否包含表头行(默认:true) - `-h, --help` - 打印帮助信息 #### 使用示例 使用默认设置转换(JSON 输出): ```bash rcli csv -i data.csv ``` 指定自定义输出文件: ```bash rcli csv -i data.csv -o result.json ``` 转换为 YAML 格式: ```bash rcli csv -i data.csv --format yaml ``` 使用分号作为分隔符: ```bash rcli csv -i data.csv -d ';' ``` 转换无表头的 CSV: ```bash rcli csv -i data.csv --header false ``` ### GenPass 命令 #### 基本用法 生成随机密码(默认 16 个字符): ```bash rcli genpass ``` 生成指定长度的密码: ```bash rcli genpass -l 32 ``` 生成不含符号的密码: ```bash rcli genpass --symbol=false ``` #### 命令选项 - `-l, --length ` - 密码长度(默认:16) - `--uppercase` - 包含大写字母(默认:true) - `--lowercase` - 包含小写字母(默认:true) - `--numbers` - 包含数字(默认:true) - `--symbol` - 包含符号(默认:true) - `-h, --help` - 打印帮助信息 #### 使用示例 生成 20 个字符的密码: ```bash rcli genpass -l 20 ``` 生成仅包含字母的密码: ```bash rcli genpass --numbers=false --symbol=false ``` 生成仅包含数字和符号的密码: ```bash rcli genpass --uppercase=false --lowercase=false ``` ### Base64 命令 #### 基本用法 编码字符串(从标准输入): ```bash rcli base64 encode # 输入要编码的内容,按 Enter,然后按 Ctrl + D 结束输入 ``` 解码字符串(从标准输入): ```bash rcli base64 decode # 输入要解码的 Base64 字符串,按 Enter,然后按 Ctrl + D 结束输入 ``` #### 命令选项 - `-i, --input ` - 输入文件(默认:-,表示标准输入) - `--format ` - 编码格式:standard 或 urlsafe(默认:standard) - `-h, --help` - 打印帮助信息 #### 使用示例 使用 URL 安全格式编码: ```bash rcli base64 encode --format urlsafe ``` 从文件读取并编码: ```bash rcli base64 encode --format urlsafe -i Cargo.toml ``` 从文件读取并解码: ```bash rcli base64 decode --format urlsafe -i tmp.b64 ``` ### Text 命令 #### 子命令 - `sign` - 签名文本数据 - `verify` - 验证文本签名 - `generate` - 生成签名密钥 #### Sign 命令 ```bash rcli text sign --format blake3 --key key.txt -i data.txt ``` #### Verify 命令 ```bash rcli text verify --format blake3 --key key.txt --sig signature.txt -i data.txt ``` #### Generate 命令 ```bash rcli text generate --format ed25519 ``` ### HTTP 命令 #### Serve 命令 启动 HTTP 服务器提供目录文件服务: ```bash rcli http serve --dir . --port 8080 ``` 带打印日志的 HTTP 服务启动 ```bash RUST_LOG=info cargo run -- http serve ``` #### 命令选项 - `-d, --dir ` - 要服务的目录(默认:.) - `-p, --port ` - 监听端口(默认:8080) - `-h, --help` - 打印帮助信息 ## 开发 ### 构建 ```bash cargo build ``` ### 运行测试 ```bash cargo test ``` ### 格式化代码 ```bash cargo fmt ``` ### 检查代码 ```bash cargo clippy ``` ## 项目结构 ``` rcli/ ├── src/ │ ├── main.rs # 主入口点 │ ├── lib.rs # 库模块 │ ├── cli/ │ │ ├── mod.rs # CLI 模块入口 │ │ ├── base64.rs # Base64 命令选项 │ │ ├── csv.rs # CSV 命令选项 │ │ ├── genpass.rs # 密码生成命令选项 │ │ ├── http.rs # HTTP 命令选项 │ │ └── text.rs # 文本签名命令选项 │ ├── process/ │ │ ├── mod.rs # 处理模块入口 │ │ ├── b64.rs # Base64 处理逻辑 │ │ ├── csv_convert.rs # CSV 处理逻辑 │ │ ├── gen_pass.rs # 密码生成逻辑 │ │ ├── http_serve.rs # HTTP 服务器逻辑 │ │ └── text.rs # 文本签名逻辑 │ └── utils.rs # 工具函数 ├── Cargo.toml # 项目配置 ├── README.md # 英文文档 ├── README_EN.md # 英文文档 └── README_CN.md # 中文文档 ``` ## 输出格式 ### JSON 格式 JSON 输出使用 2 空格缩进进行美化打印,以提高可读性。 ### YAML 格式 YAML 输出使用标准 YAML 格式,适合配置文件使用。 ### Base64 格式 - **standard** - 标准 Base64 格式,使用 + 和 / 作为特殊字符 - **urlsafe** - URL 安全的 Base64 格式,使用 - 和 _ 作为特殊字符,不使用填充字符 ### 文本签名格式 - **blake3** - Blake3 密钥哈希签名 - **ed25519** - Ed25519 数字签名 ## 许可证 MIT