{"id":27957757,"url":"https://github.com/holly-hacker/mini-jc","last_synced_at":"2025-05-07T18:14:28.466Z","repository":{"id":224232256,"uuid":"762776858","full_name":"holly-hacker/mini-jc","owner":"holly-hacker","description":"A jc clone with reasonable performance","archived":false,"fork":false,"pushed_at":"2024-02-24T19:52:33.000Z","size":13,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-07T18:14:24.057Z","etag":null,"topics":["command-line","jc","jq","json","shell-scripting"],"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/holly-hacker.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}},"created_at":"2024-02-24T16:59:01.000Z","updated_at":"2025-02-17T23:47:36.000Z","dependencies_parsed_at":"2024-02-24T17:45:59.217Z","dependency_job_id":"13df08b4-8fab-4ff0-9b85-3b21f4b3abe5","html_url":"https://github.com/holly-hacker/mini-jc","commit_stats":null,"previous_names":["holly-hacker/mini-jc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holly-hacker%2Fmini-jc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holly-hacker%2Fmini-jc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holly-hacker%2Fmini-jc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/holly-hacker%2Fmini-jc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/holly-hacker","download_url":"https://codeload.github.com/holly-hacker/mini-jc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252931549,"owners_count":21827112,"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","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":["command-line","jc","jq","json","shell-scripting"],"created_at":"2025-05-07T18:14:27.826Z","updated_at":"2025-05-07T18:14:28.458Z","avatar_url":"https://github.com/holly-hacker.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `mini-jc`\n\nA [jc](https://github.com/kellyjonbrazil/jc) clone with reasonable performance.\n\n## Motivation\n\nI use `jc` to show system stats in my taskbar on my Linux setup. Since `jc` is written in Python, it took ~50ms to spin up, parse the 3 lines of output from `free` and output it as json. I found this too slow as I have to run this every second and I don't want to give up a permanent 5% of a CPU core just to show my memory usage.\n\nAlso I was bored.\n\n## Installation\n\n### Using a Rust toolchain\n\nRun `cargo install --git https://github.com/holly-hacker/mini-jc`.\n\n\u003c!-- TODO: add nix flake --\u003e\n\n## Differences from `jc`\n\n- `mini-jc` is a single, statically linked executable so it is fairly to install\n- `mini-jc` executes magnitudes faster due to not having to start up a runtime\n- `mini-jc` supports way fewer parsers. I will likely only add support for tools I use myself.\n- `mini-jc` will convert \"human-readable\" sizes to absolute values\n- `mini-jc` tries to copy `jc`'s output naming, but doesn't do so everywhere\n\n## Supported parsers\n\n- `free`: matches `jc`\n- `df`: matches `jc`, property names have being changed to be more consistent\n\n## Performance\n\n\u003c!--\ncargo build --release\n\nhyperfine -N --warmup 100 --input test-cases/free/no-args.txt \"jc --free\" \"target/release/mini-jc free\" --export-markdown out.md \u0026\u0026 cat out.md \u0026\u0026 rm out.md\n\n--\u003e\n\n| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |\n|:---|---:|---:|---:|---:|\n| `jc --free` | 44.3 ± 0.3 | 43.7 | 45.5 | 112.19 ± 9.90 |\n| `mini-jc free` | 0.4 ± 0.0 | 0.3 | 1.1 | 1.00 |\n\n| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |\n|:---|---:|---:|---:|---:|\n| `jc --df` | 46.8 ± 0.8 | 46.0 | 50.8 | 111.48 ± 10.33 |\n| `mini-jc df` | 0.4 ± 0.0 | 0.3 | 0.7 | 1.00 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholly-hacker%2Fmini-jc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fholly-hacker%2Fmini-jc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fholly-hacker%2Fmini-jc/lists"}