rq - 通用格式转换器

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

rq (dflemstr/rq, Rust) 通用格式转换器——Avro/CBOR/CSV/JSON/MessagePack/Protocol Buffers/TOML/YAML 等 10+ 格式互转,模式感知、流式处理。微服务数据互换、protobuf/avro 调试、ETL 管道格式标准化。

一句话选型结论

按资料字段整理

rq - 通用格式转换器是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_8170ea13/rq
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_8170ea13仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791621703
正文体量9.9 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
rq - 通用格式转换器当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

9.9 KB
模型实际读到的说明书原文,来自技能仓库

rq - 通用格式转换器

技能脚本入口

本技能附带两套等价包装脚本(Unix .sh + Windows PowerShell .ps1),提供友好子命令入口与安装自检,免去记忆原始参数。

macOS / Linux(bash):

bash scripts/rq-skill.sh <subcommand> [args...]
# 查看完整用法与示例
bash scripts/rq-skill.sh help

Windows(PowerShell):

.\scripts\rq-skill.ps1 <subcommand> [args...]
# 若被执行策略拦截,用下面这种调用绕过:
powershell -ExecutionPolicy Bypass -File scripts\rq-skill.ps1 <subcommand> [args...]

可用子命令: convert、stdin、avro、protobuf、query、infer、validate、batch、pretty、compact

脚本选择规则: macOS / Linux 用 .sh;Windows 用 .ps1。两者子命令完全一致。

> 脚本仅作便捷封装,最终调用系统的 rq 二进制;运行前请确保已安装对应工具(安装方式见下文各节)。说明:SkillHub 不支持 .cmd / .bat 文件类型,故不附带 Windows cmd 版;无 PowerShell 的环境可用 Git Bash 运行 .sh 版。个别依赖 Unix 管道工具的子命令(如 gron 的 sed / fzf)在 Windows 下建议用 Git Bash 运行 .sh 版。

这是什么

rq (dflemstr/rq, 3.1k ⭐) 是一个 Record Query 工具,支持在 10+ 种结构化数据格式 间转换:Avro、CBOR、CSV、JSON、MessagePack、Protocol Buffers、TOML、YAML、awk-style text 等。核心特性:模式感知转换、流式处理、查询过滤、单二进制 (Rust)。

  • GitHub: https://github.com/dflemstr/rq
  • 文档: https://github.com/dflemstr/rq/blob/master/docs/index.md
  • 适合:数据互换、ETL 管道、微服务间格式转换、Schema Registry 集成

何时使用我

当用户出现以下意图时加载此技能:

  • "rq 命令"、"格式转换"、"avro 转 json"、"protobuf 转 yaml"
  • "多格式互转"、"cbor 转 json"、"msgpack 解码"
  • "schema 感知转换"、"protobuf schema 注册表"
  • "流式转换大文件"、"二进制格式查看"
  • "数据管道格式标准化"、"微服务数据互换"

支持格式矩阵

格式 读取 写入 Schema 支持 备注
JSON ✅ ✅ 自动推断 标准 JSON
JSONL ✅ ✅ 自动推断 每行一个 JSON
YAML ✅ ✅ 自动推断 YAML 1.2
TOML ✅ ✅ 自动推断 TOML 1.0
CSV ✅ ✅ 首行表头 支持自定义分隔符
TSV ✅ ✅ 首行表头 制表符分隔
MessagePack ✅ ✅ 无 二进制 JSON
CBOR ✅ ✅ 无 更紧凑的 MessagePack
Avro ✅ ✅ 必需 需 .avsc schema 文件
Protocol Buffers ✅ ✅ 必需 需 .proto 文件
awk-text ✅ ✅ 无 键值对文本

核心能力

1. 基础格式转换

# JSON -> YAML
rq -f json -t yaml data.json > data.yaml

# YAML -> TOML
rq -f yaml -t toml config.yaml > config.toml

# CSV -> JSON (自动推断类型)
rq -f csv -t json data.csv > data.json

# JSON -> CSV (扁平化)
rq -f json -t csv data.json > data.csv

# MessagePack -> JSON (查看二进制)
rq -f msgpack -t json data.msgpack

# CBOR -> JSON
rq -f cbor -t json data.cbor

# 从 stdin 读取,指定格式
cat data.json | rq -f json -t yaml

2. Avro 转换 (需 Schema)

# JSON -> Avro (需 schema 文件)
rq -f json -t avro --schema schema.avsc data.json > data.avro

# Avro -> JSON
rq -f avro -t json --schema schema.avsc data.avro > data.json

# Avro -> JSON (schema 内嵌在文件)
rq -f avro -t json data.avro > data.json

# 多记录 Avro 文件
rq -f avro -t jsonl --schema schema.avsc data.avro > data.jsonl

3. Protocol Buffers 转换 (需 .proto)

# JSON -> Protobuf
rq -f json -t protobuf --proto user.proto --message User data.json > data.pb

# Protobuf -> JSON
rq -f protobuf -t json --proto user.proto --message User data.pb > data.json

# Protobuf -> YAML
rq -f protobuf -t yaml --proto user.proto --message User data.pb > data.yaml

# 多消息类型
rq -f protobuf -t json --proto all.proto --message Package.Message data.pb

4. 查询与过滤 (Record Query)

# 选择字段
rq -f json -t json '.name, .email' data.json

# 过滤记录
rq -f json -t json 'select(.age > 30)' data.json

# 映射转换
rq -f json -t json 'map({name: .name, adult: .age >= 18})' data.json

# 聚合
rq -f json -t json 'reduce(.[]; .age | sum)' data.json

# 组合管道
rq -f json -t json 'select(.active) | .name | upper' data.json

5. 流式处理 (大文件/管道)

# JSON Lines 流式转换 (常数内存)
cat huge.jsonl | rq -f jsonl -t csv > huge.csv

# 压缩文件透明处理
rq -f json.gz -t yaml data.json.gz > data.yaml
rq -f json -t yaml.gz data.json > data.yaml.gz

# 管道链式
curl -s api.example.com/data.json | rq -f json -t csv | gzip > data.csv.gz

6. Schema 管理

# 从数据推断 schema
rq infer -f json data.json > inferred.avsc
rq infer -f csv data.csv > inferred.avsc

# 验证数据对 schema
rq validate -f avro --schema schema.avsc data.avro

# Schema 注册表集成 (Confluent/Apicurio)
rq -f json -t avro --schema-registry http://localhost:8081 --subject user-value data.json

7. 输出格式控制

# JSON 格式化
rq -f json -t json --pretty data.json

# JSON 紧凑
rq -f json -t json --compact data.json

# CSV 分隔符
rq -f csv -t json --csv-delimiter ';' data.csv

# CSV 无表头
rq -f csv -t json --no-headers data.csv

# YAML 流格式 (多文档)
rq -f json -t yaml --yaml-stream data.json

8. 批量转换

# 目录下所有 JSON -> YAML
for f in *.json; do
  rq -f json -t yaml "\$f" > "\${f%.json}.yaml"
done

# 并行转换 (GNU parallel)
ls *.json | parallel -j 4 'rq -f json -t yaml {} > {.}.yaml'

典型工作流示例

场景 1:微服务数据互换标准化

# 服务 A 输出 Avro (Kafka)
# 服务 B 需要 JSON (REST)
# 网关层转换:

# 1. 从 Kafka 消费 Avro
kafka-console-consumer --topic user-events --bootstrap-server localhost:9092 \
  --property schema.registry.url=http://sr:8081 \
  | rq -f avro -t json --schema-registry http://sr:8081 --subject user-events-value \
  > user_events.jsonl

场景 2:数据湖格式统一 (Parquet/Avro -> JSONL)

# 1. Avro 文件转 JSONL (流式)
rq -f avro -t jsonl --schema schema.avsc part-00000.avro > part-00000.jsonl

# 2. CBOR 日志转 JSON
rq -f cbor -t jsonl logs.cbor > logs.jsonl

# 3. 统一导入数据仓库

场景 3:Protocol Buffers 调试

# 1. 二进制 pb 文件查看
rq -f protobuf -t json --proto user.proto --message User response.pb | jq .

# 2. JSON 请求转 pb 发送
rq -f json -t protobuf --proto api.proto --message Request request.json | \
  grpcurl -d @ localhost:50050 service.Method

场景 4:配置文件多格式同步

# 单一源头 (YAML) -> 多目标格式
rq -f yaml -t json config.yaml > config.json
rq -f yaml -t toml config.yaml > config.toml
rq -f yaml -t env config.yaml > .env
# env 格式输出: KEY=value

场景 5:CSV/Excel 数据清洗管道

# 1. Excel -> CSV (先用其他工具)
# 2. CSV -> JSON -> 清洗 -> CSV
rq -f csv -t json dirty.csv | \
  rq -f json -t json 'select(.email =~ "@") | .email |= lower' | \
  rq -f json -t csv > clean.csv

查询语言速查 (rq 表达式)

# 字段选择
.field                    # 单字段
.field1, .field2         # 多字段
.*                       # 所有字段

# 过滤
select(.age > 30)        # 条件过滤
select(.tags[] == "admin")  # 数组包含

# 映射
map({new_name: .old_name})  # 重命名/计算
map({name, adult: .age >= 18})  # 简写

# 聚合
reduce(.[]; .value | sum)   # 求和
reduce(.[]; .value | max)   # 最大值
group_by(.category)         # 分组

# 字符串
upper, lower, trim
split("."), join(".")

# 条件
if .age > 18 then "adult" else "minor" end

安装方式

# macOS (Homebrew)
brew install rq

# Linux (二进制下载 - GitHub Releases)
# 单文件,解压到 PATH

# Cargo (最新版)
cargo install rq

# Docker
docker run --rm -v "\${PWD}":/data ghcr.io/dflemstr/rq -f json -t yaml /data/config.json

故障排查

问题 解决方案
"command not found" `cargo install rq` 或下载二进制
Avro/Protobuf 报错 missing schema 必须提供 `--schema` 或 `--proto` 参数
类型转换丢失精度 JSON 数字是 float64,大整数用字符串或 Avro long
内存不足 用流式模式 `-f jsonl -t csv` 避免全量加载
Protobuf 字段名不匹配 protobuf 用字段编号,JSON 用字段名,需 `--proto` 映射
CSV 推断类型错 显式指定 schema 或预处理 CSV

相关技能

  • dasel - 统一选择器查询/修改 (更适合交互式探索)
  • yq - YAML/JSON/XML/CSV/TOML 转换 (更常用格式)
  • miller - CSV/TSV/JSON 流式处理 (awk 风格)
  • sqlite-utils - 导入 SQLite 做复杂 SQL
  • xsv - CSV 统计/连接/切片
  • gron - JSON 扁平化 (配合行工具处理)

技能版本: 1.0.0 | 作者: asdw741111 | 适用平台: OpenCode, Claude Code, Cursor, Codex CLI, Windsurf, Gemini CLI

常见问题

5 问
答案由本站依据条目字段整理
rq - 通用格式转换器怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_8170ea13/rq。安装方式为未标注。装完刷新技能列表或重开客户端。

rq - 通用格式转换器支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

rq - 通用格式转换器权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

rq - 通用格式转换器收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

rq - 通用格式转换器用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。