{"id":50791616,"url":"https://github.com/s-k2/yamlq","last_synced_at":"2026-06-12T11:31:09.206Z","repository":{"id":325693889,"uuid":"1102095493","full_name":"s-k2/yamlq","owner":"s-k2","description":"yamlq - jq modified to parse and output YAML. Available as a single, static-linked binary","archived":false,"fork":false,"pushed_at":"2025-11-22T20:13:01.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-22T21:14:33.455Z","etag":null,"topics":["cli","jq","yaml"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s-k2.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-22T20:09:27.000Z","updated_at":"2025-11-22T20:17:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/s-k2/yamlq","commit_stats":null,"previous_names":["s-k2/yamlq"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/s-k2/yamlq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-k2%2Fyamlq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-k2%2Fyamlq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-k2%2Fyamlq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-k2%2Fyamlq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s-k2","download_url":"https://codeload.github.com/s-k2/yamlq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s-k2%2Fyamlq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34243051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"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":["cli","jq","yaml"],"created_at":"2026-06-12T11:31:09.099Z","updated_at":"2026-06-12T11:31:09.199Z","avatar_url":"https://github.com/s-k2.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yamlq\n\nyamlq is a tool for processing YAML inputs by applying a specified filter to the input data and producing the filter's results as YAML or JSON on standard output.\n\nIt uses jq code for almost everything except parsing and output generation. This means you can use the full range of jq's filtering capabilities with YAML files.\n\nUnlike yq, yamlq is not implemented as a preprocessor for jq. Instead, it is a standalone C program that can be built statically. (This was the original motivation for creating it: I needed a yq-like tool in a minimal environment where Python was not available.)\n\n## Limitations\n\n- no support for YAML anchors and aliases\n- no `fromyaml`/`toyaml` builtin to parse and dump YAML from strings\n- no `--argyaml` command-line parameter\n- yamlq always applies the fix for [GHSA-f946-j5j2-4w5m](https://github.com/jqlang/jq/security/advisories/GHSA-f946-j5j2-4w5m), this makes libonig a hard requirement\n\n## Versioning\n\nWhenever a new version of jq is released, yamlq will be updated as soon as possible. Because most of the code is shared with jq, its major/minor/patch version will also be used for yamlq.\n\nWhen a new version of libyaml is released, the submodule will be updated as well. This will be reflected with an added/incremented fourth number in the version string.\n\nDevelopment builds (untagged commits) will report the short commit id as version number.\n\n## Static Download\n\nFor every new version of yamlq, static binaries for `linux-amd64`, `linux-arm64` and `windows-amd64` will be available for download through Github Releases.\n\n## Building\n\n### Requirements\n\nYou need to install:\n\n- a C99 compatible compiler (`gcc` and `clang` tested)\n- `git` (to checkout submodules)\n- `make`\n- `patch`\n- `awk`\n- `sh`\n\nLinking aginst your system's `libyaml`, `libjq` and `libonig` (dependency of jq) requires to install the corresponding development packages:\n\n- Debian/Ubuntu: `sudo apt-get install libyaml-dev libjq-dev libonig-dev`\n- Alpine: `apk add yaml-dev jq-dev oniguruma-dev`\n- OpenSuse: `sudo zypper install libyaml-devel libjq-devel oniguruma-devel`\n- Fedora: `dnf install libyaml-devel jq-devel oniguruma-devel`\n\nFor static builds, all dependencies will be downloaded and build automatically.\n\n### Build and Install\n\nIf `libyaml`, `libjq` and `libonig` are available on your system, prefer building dynamically against those libraries. This ensures you benefit from your distribution's security updates. To build and install dynamically, run:\n\n    make\n    sudo make install\n\nIn case you need a static build with no runtime dependencies:\n\n    make getdeps\n    make static\n    sudo make install-static\n\nYou can use the CC make variable to change the compiler, e.g. to to build against musl libc:\n\n    make getdeps\n    make CC=musl-gcc static\n    sudo make install-static\n\nThe following two non-standard variables (additional configure-script parameters and OS-specific linker parameters for the final target only) are helpful for cross-compiling:\n\n    make getdeps\n    make CC=x86_64-w64-mingw32-gcc-posix CONFIGURE_FLAGS=--host=x86_64-w64-mingw32 LDFLAGS_OS=\"-municode -lshlwapi\" static\n\nBuilding requires internet connectivity to checkout git submodules (jq in any case, libyaml for a static build) to succeed. If you don't do this explicitly, it will be done automatically during the make step.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-k2%2Fyamlq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs-k2%2Fyamlq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs-k2%2Fyamlq/lists"}