{"id":19123521,"url":"https://github.com/pinbraerts/rekson","last_synced_at":"2025-09-08T13:32:52.360Z","repository":{"id":261015434,"uuid":"882768898","full_name":"pinbraerts/rekson","owner":"pinbraerts","description":"A simple standalone to rectify json","archived":false,"fork":false,"pushed_at":"2025-05-01T11:37:16.000Z","size":84,"stargazers_count":1,"open_issues_count":8,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-13T21:14:20.621Z","etag":null,"topics":["fix-json","json","recover-json","rectify-json","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pinbraerts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-03T17:58:18.000Z","updated_at":"2025-05-01T11:37:19.000Z","dependencies_parsed_at":"2024-11-04T08:28:17.313Z","dependency_job_id":"14f114c6-eb96-462d-b90d-f34ac72fb631","html_url":"https://github.com/pinbraerts/rekson","commit_stats":null,"previous_names":["pinbraerts/rekson"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/pinbraerts/rekson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinbraerts%2Frekson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinbraerts%2Frekson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinbraerts%2Frekson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinbraerts%2Frekson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pinbraerts","download_url":"https://codeload.github.com/pinbraerts/rekson/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pinbraerts%2Frekson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274193925,"owners_count":25238938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fix-json","json","recover-json","rectify-json","rust"],"created_at":"2024-11-09T05:26:04.049Z","updated_at":"2025-09-08T13:32:52.321Z","avatar_url":"https://github.com/pinbraerts.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚡ rekson\nrectify your json. [Try it in the browser!](https://pinbraerts.github.io/rekson/)\n\n## 🍎 Motivation\nI frequently edit [json](https://json.org) files.\nIt is a completely unusable configuration language with poorly written grammar.\nSo I came up with a simple program to fix manually edited json.\nThis is not a formatter, rather it is intended to be used in conjunction with one,\nfor example [`jq`](https://github.com/jqlang/jq).\n\n## ✨ Features\n - [x] trailing comma (`{,\"a\":3,} -\u003e {\"a\":3}`)\n - [x] comma between values (`[1 2] -\u003e [1, 2]`)\n - [x] correct quotes (```{`key`: 'value'} -\u003e {\"key\": \"value\"}```)\n - [x] multiline strings\n - [x] correct booleans (`True -\u003e true`)\n - [x] correct nulls (`None -\u003e null`)\n - [x] quote unknown values (`{a:3} -\u003e {\"a\":3}`)\n - [x] correct colon (`{\"a\"=3} -\u003e {\"a\":3}`)\n - [x] insert colon (`{b 4} -\u003e {\"b\":4}`)\n - [x] replace parenthesis with brackets (`((),()) -\u003e [[],[]]`)\n - [x] sequential io\n - [x] strip single-line comments\n\n## 💡 Plans\n - [ ] [convert numbers](https://github.com/pinbraerts/rekson/issues/10) (`0xff -\u003e 256`)\n - [ ] [COW](https://github.com/pinbraerts/rekson/issues/7) (reduce memory copying)\n - [ ] [autoclose quotes](https://github.com/pinbraerts/rekson/issues/12)\n - [ ] strip multiline comments\n\n## ✅ Pros\n - written in Rust =\u003e instant format on write\n - no dependencies =\u003e faster to build than to install an npm package\n - can be used as standalone executable\n - can be used as standalone library\n\n## ❌ Cons\n - barebone simplicity =\u003e adding new features requires rethinking the architecture\n - single-threaded (for now)\n - no configuration (for now)\n - small testsuite (for now)\n\n## 🚀 Installation\n\n### [crates.io](https://crates.io/crates/rekson)\n```bash\ncargo install rekson\n```\n\n### From [source](https://github.com/pinbraerts/rekson)\n```bash\ncargo install --git https://github.com/pinbraerts/rekson\n```\n\n### Binary\nPrebuilt binaries can be found at the [releases](https://github.com/pinbraerts/rekson/releases) page.\n\n## 🛠️ Usage\n\nPass dirty json to stdin, receive fixed json in stdout.\n\n### [conform.nvim](https://github.com/stevearc/conform.nvim)\n\n```lua\nrequire(\"conform\").setup({\n  formatters = {\n    rekson = {\n      command = \"rekson\",\n    },\n  },\n  formatters_by_ft = {\n    json = { \"rekson\" },\n  })\n})\n```\n\n## 👀 Alternatives\n - https://github.com/adhocore/php-json-fixer\n - https://github.com/rhysd/fixjson\n - https://github.com/Berkmann18/json-fixer\n - https://github.com/messense/dirty-json-rs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinbraerts%2Frekson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpinbraerts%2Frekson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpinbraerts%2Frekson/lists"}