XQPath
高性能的 jq 风格结构化数据路径提取库 | 提供 Rust API 和命令行工具
[
](https://craXQPath v1.4.3 拥有完整的测试覆盖:
✨ 特性
- 🚀 高性能:快速路径提取和数据查询
- 📖 jq 兼容语法:支持
.field、[index]、*、**等常用路径 - 🔧 多格式支持:JSON、YAML 格式无缝处理
- ⚡ 现代化 CLI:14+ 专用命令,彩色输出
- 🛡️ 类型安全:完整的 Rust 类型系统支持
- 🔍 调试工具:完整的调试和性能分析功能
- ⚙️ 配置管理:统一的配置文件管理和模板系统 (v1.4.3+)
- 🎯 交互式调试:强大的交互式调试器 (v1.4.3+)
- 🧪 完整测试:132+ 测试用例,覆盖所有功能
📦 安装
# 安装库
# 安装命令行工具
🚀 快速开始
Rust 库用法
use ;
use json;
let data = r#"{
"users": [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
}"#;
// 查询多个值
let names = query!.unwrap;
// [String("Alice"), String("Bob")]
// 查询单个值
let first_name = query_one!.unwrap;
// Some(String("Alice"))
// 检查路径是否存在
let has_users = exists!.unwrap;
// true
命令行工具
# 基本查询
|
# 路径检查和类型
# 计数和键名
# 格式转换
# 配置管理 (v1.4.3+)
# 交互式调试器 (v1.4.3+)
# 调试和性能分析
📖 路径语法
# 基础访问
# 注意:高级操作如递归搜索(.config.**)和管道操作(.users | length)
# 计划在未来版本中实现
🔧 高级功能
配置管理 (v1.4.3+)
# 显示当前配置
# 设置配置项
# 重置配置
可配置项
- 调试配置:
debug.level(trace/debug/info/warn/error) - 性能配置:
performance.memory_limit,performance.timeout,performance.cache_size - 功能配置:
features.colored_output,features.auto_backup
交互式调试器 (v1.4.3+)
# 启动交互式调试器
# 预加载数据文件
调试器命令
# 数据管理
# 查询和检查
# 断点管理
# 监视点管理
# 调试信息
# 帮助和退出
调试和性能分析
# 调试模式 - 显示详细执行信息
# 输出: 解析时间、执行时间、查询路径、错误分析
# 执行跟踪 - 追踪查询执行过程
# 输出: 执行时间统计、结果类型分析
# 注意:profile、benchmark、monitor等高级性能分析功能
# 计划在未来版本中实现
错误处理
// 优雅的错误处理
match query!
// 可选字段查询
let optional = query_one!?; // 返回 Option<Value>
🧪 开发和测试
测试覆盖率
XQPath v1.4.3 拥有完整的测试覆盖:
- 单元测试: 58 个 (库核心功能)
- 集成测试: 76 个 (CLI、配置、调试器等)
- 总计: 134 个测试,100% 通过率
快速开始
# 克隆项目
# 快速测试核心功能
# 完整测试 (包括所有特性)
测试命令
# 快速测试核心功能
# 特定功能测试
# 完整测试
# 原生cargo方式
开发工作流
# 开发前检查
# 代码质量
# 构建
配置文件
项目支持多种配置方式,配置文件位于 config/ 目录:
详细的开发指南请参考 docs/test-optimization.md。
🔄 CI/CD 集成
项目已集成完整的 CI/CD 流程:
GitHub Actions 工作流
- CI: 自动化测试、代码检查、跨平台测试
- Release: 多平台构建、自动发布到 crates.io
本地开发与 CI 一致性
# 模拟CI快速检查流程
# 模拟CI完整测试流程
# 模拟发布前检查
CI 测试策略
- 快速检查 (并行): 格式化、语法检查、代码质量
- 分层测试 (并行): 核心测试、配置测试、调试测试
- 完整测试: 所有功能集成测试
- 跨平台测试: Linux、Windows、macOS
- 发布检查: 发布前完整验证
🤝 贡献
欢迎贡献代码和反馈!查看 贡献指南 了解详情。
📄 许可证
本项目采用 Apache-2.0 许可证。
XQPath - 让结构化数据处理变得简单高效 🚀