emuto

Emuto 是一种小型语言,用于操作和重组 JSON 和其他数据文件。「Emuto is a small language for manipulating and restructuring JSON and other data files.」

Github stars Tracking Chart


Emuto is a small language for manipulating and restructuring JSON and other data files. Emuto is inspired by jq and GraphQL

build Codecov David NPM GitHub release Twitter URL

Features

  • Transform and query data structures
  • Integrate with unix commands in the command line
  • Conversions between different file formats
  • Supported input formats: JSON, text, csv, tsv, dsv
  • Supported output formats: JSON, text
  • Available as a Webpack loader

Getting started

Emuto as a CLI tool

npm install -g emuto emuto-cli

Read more in the tutorial

For Arch Linux users, also available as an AUR package

Webpack loader for emuto

yarn add --dev emuto emuto-loader

Read more in the Webpack guide

What is emuto good for? Examples

Number of items in JSON file

curl my_file.json, emuto 'length'

Your karma on HackerNews

curl https://hacker-news.firebaseio.com/v0/user/kantord.json -s, emuto '$.karma'

Convert another command's output to JSON

ls, emuto -i=raw '$[0:-1]'

See number of NPM dependencies

cat package.json, emuto -c '$.dependencies, keys, length'

List available scripts in package.json

cat package.json, emuto -c '$.scripts, keys, join " · "'

Get only the relevant data from a huge JSON file

curl https://api.github.com/repos/stedolan/jq/commits, \
emuto -c 'map ($ => $ { commit { message } committer { login } } )'

Automate the restructuring of data by creating scripts with emuto

restructure.emu

#! emuto -s

$, map ($ => $ { commit { message } committer { login } } ), map ($ => {
      "committer": $.committer.login,
      "message":   $.commit.message,
    })

Calling your script

curl https://api.github.com/repos/stedolan/jq/commits, ./restructure.emu

Contributing Guide

Read our contributing guide to learn about our development process, how to create bugfixes and improvements, and how to build and test your changes to emuto.

Main metrics

Overview
Name With Ownerkantord/emuto
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2018-08-31 10:46:00
Pushed At2025-03-10 23:46:44
Last Commit At2024-12-19 18:15:04
Release Count58
Last Release Namev1.43.0 (Posted on )
First Release Namev1.0.0 (Posted on )
用户参与
Stargazers Count223
Watchers Count4
Fork Count7
Commits Count518
Has Issues Enabled
Issues Count98
Issue Open Count41
Pull Requests Count371
Pull Requests Open Count8
Pull Requests Close Count375
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private