FormatBridge 是一款面向开发者的结构化数据工具集:在 JSON、YAML、CSV、TOML、INI 之间做语法校验、格式探测、美化/压缩与相互转换。同一套逻辑运行在 Dart 核心库、命令行 fbridge 与 Flutter 桌面 GUI 中,适合本地编辑、脚本流水线或接入自动化。
- 校验:按格式检查文本是否合法(
auto时按探测顺序尝试多种格式)。 - 探测:对一段文本给出可能的格式与置信度。
- 格式化 / 压缩:美化或压缩 JSON、YAML、CSV、TOML、INI 文本。
- 转换:在上述格式之间转换(CSV 需为表结构,首行为表头;TOML/INI 与 JSON 模型之间的映射见引擎约定)。
| 路径 | 说明 |
|---|---|
packages/core |
formatbridge_core:纯 Dart 引擎,无 Flutter 依赖 |
packages/cli |
fbridge 命令行入口 |
flutter_app |
桌面 GUI(Linux / macOS / Windows) |
更细的构建步骤、依赖与排错见 docs/BUILD.md。
可执行入口为 fbridge(包名 formatbridge_cli)。在仓库内可直接用 Dart 运行,也可编译为原生可执行文件或 dart pub global activate 安装到 PATH。
cd packages/cli
dart pub get
dart run bin/fbridge.dart version常用示例:
# 校验文件(可用 - 表示从 stdin 读)
dart run bin/fbridge.dart validate path/to/file.json
dart run bin/fbridge.dart validate sample.yaml --format yaml
# 探测格式
dart run bin/fbridge.dart detect - < ./data.txt
# 格式化(美化);可指定输出文件(与 convert 相同)
dart run bin/fbridge.dart format messy.json
dart run bin/fbridge.dart format messy.json cleaned.json
# 转换
dart run bin/fbridge.dart convert input.json output.yaml子命令、管道、--json 机器可读输出等完整说明见 docs/CLI.md。
FormatBridge 桌面应用提供三个页面,分别是:
- 编辑页面:双栏(输入 + 输出区);「输出模式」下拉在美化 / 压缩间切换,随输入防抖自动更新输出区且不覆盖输入;校验、保存输出、拖拽与打开文件;CSV 输出可切换「ASCII 表 / 文本」;
- 转换页面:双栏编辑 + 自动探测 + 拖拽与打开文件,支持 JSON / YAML / TOML / INI / CSV 等格式转换和导出;
- 设置页面:支持主题设置(浅色 / 深色 / 跟随系统)、编辑器字体大小、允许编辑输出,偏好保存在本机。
构建方法:
cd flutter_app
flutter pub get
flutter run -d linux # 或 macos / windows,见 flutter devices发布构建:
cd flutter_app
flutter build linux # 或 macos / windows构建产物路径见 BUILD.md 中的说明。
- BUILD.md — 环境、构建、各桌面端产物与安装包思路
- CHANGELOG.md — 版本变更记录
- CLI.md — CLI 子命令与参数
- THIRD_PARTY.md — 第三方依赖说明
许可证见仓库根目录 LICENSE。

