{"id":13760842,"url":"https://github.com/kantord/emuto","last_synced_at":"2025-05-16T07:06:47.215Z","repository":{"id":48316295,"uuid":"146879282","full_name":"kantord/emuto","owner":"kantord","description":"manipulate JSON files","archived":false,"fork":false,"pushed_at":"2025-03-10T23:46:44.000Z","size":8767,"stargazers_count":222,"open_issues_count":49,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-08T13:51:19.627Z","etag":null,"topics":["api","awk","cli","data-mining","data-structures","frontend","javascript","jq","json","node","processing-language","programming-language","query-language","script","sed"],"latest_commit_sha":null,"homepage":"https://kantord.github.io/emuto/","language":"JavaScript","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/kantord.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2018-08-31T10:46:00.000Z","updated_at":"2025-05-02T19:04:07.000Z","dependencies_parsed_at":"2025-01-15T04:30:41.212Z","dependency_job_id":"6f4e75b5-6be0-4618-aa44-221766d9fefc","html_url":"https://github.com/kantord/emuto","commit_stats":{"total_commits":516,"total_committers":4,"mean_commits":129.0,"dds":"0.49806201550387597","last_synced_commit":"8e33b808ddd8bbc9695436635df7aef589498c5d"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kantord%2Femuto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kantord%2Femuto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kantord%2Femuto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kantord%2Femuto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kantord","download_url":"https://codeload.github.com/kantord/emuto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254485066,"owners_count":22078767,"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":["api","awk","cli","data-mining","data-structures","frontend","javascript","jq","json","node","processing-language","programming-language","query-language","script","sed"],"created_at":"2024-08-03T13:01:23.950Z","updated_at":"2025-05-16T07:06:42.206Z","avatar_url":"https://github.com/kantord.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://kantord.github.io/emuto/img/emuto.svg\" height=\"100\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://kantord.github.io/emuto/\"\u003eWebsite\u003c/a\u003e •\n  \u003ca href=\"https://kantord.github.io/emuto/docs/tutorial\"\u003eTutorial\u003c/a\u003e •\n  \u003ca href=\"https://kantord.github.io/emuto/docs/try_emuto\"\u003eLive demo\u003c/a\u003e •\n  \u003ca href=\"#emuto-as-a-cli-tool\"\u003eCLI version\u003c/a\u003e •\n  \u003ca href=\"#webpack-loader-for-emuto\"\u003eCompile-to-JS version\u003c/a\u003e\n\n\u003c/p\u003e\n\n\n---\n\nEmuto is a small language for manipulating and restructuring JSON and other data files. [Emuto is inspired by jq and GraphQL](https://kantord.github.io/emuto/docs/comparison_with_other_languages)\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg  src=\"https://kantord.github.io/emuto/img/demo.gif\"\u003e\n\u003c/p\u003e\n\n![build](https://img.shields.io/travis/kantord/emuto/master.svg) ![Codecov](https://img.shields.io/codecov/c/github/kantord/emuto/master.svg) ![David](https://img.shields.io/david/kantord/emuto.svg) ![NPM](https://img.shields.io/npm/l/emuto.svg) ![GitHub release](https://img.shields.io/github/release/kantord/emuto.svg)   [![Twitter URL](https://img.shields.io/twitter/url/https/https://github.com/kantord/emuto.svg?style=social)](https://twitter.com/intent/tweet?text=transform%20%26%20query%20jSON%2C%20CSV%2C%20etc.%20easily%20using%20emuto%20https%3A%2F%2Fgithub.com%2Fkantord%2Femuto)\n\n## Features\n\n- Transform and query data structures\n- Integrate with unix commands in the command line\n- Conversions between different file formats\n- Supported input formats: JSON, text, csv, tsv, dsv\n- Supported output formats: JSON, text\n- Available as a Webpack loader\n\n## Getting started\n\n### Emuto as a CLI tool\n\n```\nnpm install -g emuto emuto-cli\n```\n\n[Read more in the tutorial](https://kantord.github.io/emuto/docs/tutorial)\n\n[For Arch Linux users, also available as an AUR package](https://aur.archlinux.org/packages/emuto/)\n\n### Webpack loader for emuto\n\n```\nyarn add --dev emuto emuto-loader\n```\n\n[Read more in the Webpack guide](https://kantord.github.io/emuto/docs/setup-webpack)\n\n\n## What is emuto good for? Examples\n\n### Number of items in JSON file\n\n```bash\ncurl my_file.json | emuto 'length'\n```\n\n### Your karma on HackerNews\n\n```bash\ncurl https://hacker-news.firebaseio.com/v0/user/kantord.json -s | emuto '$.karma'\n```\n\n### Convert another command's output to JSON\n\n```bash\nls | emuto -i=raw '$[0:-1]'\n```\n\n### See number of NPM dependencies\n\n```bash\ncat package.json | emuto -c '$.dependencies | keys | length'\n```\n\n### List available scripts in package.json\n\n```bash\ncat package.json | emuto -c '$.scripts | keys | join \" · \"'\n```\n\n### Get only the relevant data from a huge JSON file\n\n```bash\ncurl https://api.github.com/repos/stedolan/jq/commits |\\\nemuto -c 'map ($ =\u003e $ { commit { message } committer { login } } )'\n```\n\n### Automate the restructuring of data by creating scripts with emuto\n\nrestructure.emu\n\n```text\n#! emuto -s\n\n$\n  | map ($ =\u003e $ { commit { message } committer { login } } )\n  | map ($ =\u003e {\n      \"committer\": $.committer.login,\n      \"message\":   $.commit.message,\n    })\n```\n\nCalling your script\n\n```bash\ncurl https://api.github.com/repos/stedolan/jq/commits | ./restructure.emu\n```\n\n\n\n## [Contributing Guide](CONTRIBUTING.md)\n\nRead our [contributing guide](CONTRIBUTING.md) to learn about our development process, how to create bugfixes and improvements, and how to build and test your changes to emuto.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkantord%2Femuto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkantord%2Femuto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkantord%2Femuto/lists"}