{"id":13652224,"url":"https://github.com/kunalsin9h/livejq","last_synced_at":"2025-04-23T03:30:37.732Z","repository":{"id":184828603,"uuid":"672550293","full_name":"KunalSin9h/livejq","owner":"KunalSin9h","description":"An alternative jq implementation in rust for continuous parsing without crashing on invalid JSON, with Filtration support. ","archived":false,"fork":false,"pushed_at":"2024-08-25T14:30:49.000Z","size":18354,"stargazers_count":16,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-21T06:52:12.306Z","etag":null,"topics":["cli","json","parsing","rust","serde"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/livejq","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/KunalSin9h.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"KunalSin9h"}},"created_at":"2023-07-30T13:18:33.000Z","updated_at":"2025-04-09T10:26:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a703155-7085-469d-bc8e-cbb1bbada35a","html_url":"https://github.com/KunalSin9h/livejq","commit_stats":null,"previous_names":["kunalsin9h/livejq"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Flivejq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Flivejq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Flivejq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Flivejq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KunalSin9h","download_url":"https://codeload.github.com/KunalSin9h/livejq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365235,"owners_count":21418651,"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":["cli","json","parsing","rust","serde"],"created_at":"2024-08-02T02:00:57.302Z","updated_at":"2025-04-23T03:30:37.435Z","avatar_url":"https://github.com/KunalSin9h.png","language":"Rust","funding_links":["https://github.com/sponsors/KunalSin9h"],"categories":["Command-line tools"],"sub_categories":[],"readme":"## LiveJQ\n\n`livejq` is JSON parser like `jq` but is designed to work in continuous input without crashing on invalid JSON. With json filtering.\n\nIt uses `livejq.toml` file to specify [filter rules](#filter).\n\n#### User Case\n\nWhen you have a program that is printing logs which may have other formats in between like text along with JSON, and you want to parse JSON for better readability. You can use `livejq` to parse JSON without crashing on other formats.\n\nOr when you want to apply `filters` when paring json.\n\n### Demo\n\nhttps://github.com/KunalSin9h/livejq/assets/82411321/71907858-5150-4efe-8c0f-58bb1c0dc591\n\n### Install\n\nInstall using `cargo`\n\n```bash\ncargo install livejq\n```\n\n#### or you can find `binaries` in the [Release page](https://github.com/KunalSin9h/livejq/releases/latest)\n\n### Usage\n\n```bash\n./your_program | livejq\n```\n\n### Filter\n\nTo apply filtering, you need to create `livejq.toml` file in the project root.\n\nIt contains `labels`. _labels_ are filter labels which you can apply with `-f` / `--filter` flag.\n\n#### Example config file:\n\n\u003e when not `label` is created, `default` is used. For each label, you can only give allow or disallow, not both.\n\n```toml\n#livejq.toml\n\nallow = [\"name\"] # default\n\n[network] # -f network\nallow = [\"net-failed\"]\n\n[memory] # -f memory\nallow = [\"memory-info\"]\n\n[not-console] # -f not-console\ndisallow = [\"console\"]\n```\n\n\u003e for seeing the schema format, check `schema.toml` file in this repository.\n\n#### Usage:\n\n```bash\n# If no flag is given, it will use default \n# i.e allow = [\"name\"]\n# it will only allow json who have \"name\" key\nnode main.js | livejq\n\n# you can combine different labels together\nnode main.js | livejq -f network memory\n\n# or using example_data.txt from this repository\ncat example_data.txt | livejq --filter not-console\n```\n\n\u003e Here `|` is for piping output of `my_program` into `livejq` as input.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunalsin9h%2Flivejq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkunalsin9h%2Flivejq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunalsin9h%2Flivejq/lists"}