rekson

Crates.iorekson
lib.rsrekson
version0.0.1
sourcesrc
created_at2024-11-09 12:57:26.998235
updated_at2024-11-09 12:57:26.998235
descriptionA simple standalone to rectify json
homepagehttps://github.com/pinbraerts/rekson
repositoryhttps://github.com/pinbraerts/rekson
max_upload_size
id1442059
size17,419
Dmitry (pinbraerts)

documentation

README

🛠️ rekson

rectify your json

🍎 Motivation

I frequently edit json files. It is a completely unusable configuration language with poorly written grammar. So I came up with a simple program to fix manually edited json. This is not a formatter, rather it is intended to be used in conjunction with one, for example jq.

✨ Features

  • trailing comma ({,"a":3,} -> {"a":3})
  • comma between values ([1 2] -> [1, 2])
  • correct quotes ({`key`: 'value'} -> {"key": "value"})
  • multiline strings
  • correct booleans (True -> true)
  • correct nulls (None -> null)
  • quote unknown values ({a:3} -> {"a":3})
  • correct colon ({"a"=3} -> {"a":3})
  • insert colon ({b 4} -> {"b":4})
  • fix brackets ({[{[{]] -> {[{[{}]}]})
  • replace parenthesis with brackets (((),()) -> [[],[]])
  • async io

💡 Plans

  • strip comments
  • convert numbers (0xff -> 256)
  • COW (reduce memory copying)
  • multithreading

✅ Pros

  • written in Rust => instant format on write
  • no dependencies => faster to build than to install an npm package
  • can be used as standalone executable
  • can be used as standalone library

❌ Cons

  • barebone simplicity => adding new features requires rethinking the architecture
  • single-threaded (for now)
  • no configuration (for now)
  • small testsuite (for now)

👀 Alternatives

Commit count: 40

cargo fmt