10 个版本

0.3.1 2024年4月29日
0.3.0 2024年4月29日
0.2.1 2024年4月10日
0.1.5 2024年4月7日

480文本处理 中排名

每月下载 35

MIT 许可证

25KB
535 代码行

formatjson

使用 Rust 编写的简单 JSON 验证器和格式化工具。

有关文档,请参阅 docs.rs 页面

安装

cargo install formatjson

用法

  • 作为命令行工具

    $ formatjson example.json
    Successfully formatted example.json
    $ echo '{"foo": "bar"}' | formatjson
    {
      "foo": "bar"
    }
    
  • 作为库

    fn main() {
        let json = formatjson::format_json(r#"{"foo":"bar"}"#).unwrap();
        println!("{}", json);
    }
    
    $ cargo run
    {
      "foo": "bar"
    }
    

速度

这个 25MB 的 JSON 文件 上运行它,得到了以下结果

$ hyperfine 'formatjson large.json'
Benchmark 1: formatjson large.json
  Time (mean ± σ):     400.1 ms ±   9.3 ms    [User: 359.4 ms, System: 31.9 ms]
  Range (min … max):   390.1 ms … 419.6 ms    10 runs

在我的 M1 MacBook Air 上平均 400 毫秒,比 pretter 快 38 倍,pretter 需要 15.27 秒

$ time npx prettier --check large.json
Checking formatting...
[warn] large.json
[warn] Code style issues found in the above file. Run Prettier to fix.
npx prettier --check large.json  26.14s user 11.57s system 246% cpu 15.279 total

依赖项

~3.5–5MB
~95K SLoC