{"id":17946587,"url":"https://github.com/fuyutarow/piqel","last_synced_at":"2025-03-24T20:32:47.035Z","repository":{"id":48649676,"uuid":"369333093","full_name":"fuyutarow/piqel","owner":"fuyutarow","description":"An implementation of PartiQL written in Rust","archived":false,"fork":false,"pushed_at":"2022-08-24T07:41:08.000Z","size":1779,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"alpha","last_synced_at":"2024-10-29T07:06:31.849Z","etag":null,"topics":["partiql","query-language","rust","sql"],"latest_commit_sha":null,"homepage":"https://piqel.pages.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuyutarow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-20T20:41:39.000Z","updated_at":"2023-06-30T04:46:18.000Z","dependencies_parsed_at":"2022-08-12T19:51:01.767Z","dependency_job_id":null,"html_url":"https://github.com/fuyutarow/piqel","commit_stats":null,"previous_names":["fuyutarow/partiql-rs"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyutarow%2Fpiqel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyutarow%2Fpiqel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyutarow%2Fpiqel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyutarow%2Fpiqel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuyutarow","download_url":"https://codeload.github.com/fuyutarow/piqel/tar.gz/refs/heads/alpha","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245348306,"owners_count":20600624,"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":["partiql","query-language","rust","sql"],"created_at":"2024-10-29T07:06:37.293Z","updated_at":"2025-03-24T20:32:46.320Z","avatar_url":"https://github.com/fuyutarow.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cdiv\u003e\n    \u003cimg width=\"368\" alt=\"image\" src=\"https://user-images.githubusercontent.com/14998939/186230936-977af168-9879-4a44-ac29-5a0bbd4abd11.png\"\u003e\n  \u003c/div\u003e\n  \u003ch3\u003e\n    \u003ca href=\"https://piqel.pages.dev\"\u003eDocument(WIP)\u003c/a\u003e\n  \u003c/h3\u003e\n  \u003cstrong\u003e\n    A command line tool for data processing with SQL queries. json, yaml, toml to your favorite format.\n  \u003c/strong\u003e\n  \u003cdiv\u003e\n    \u003cimg width=\"600\" alt=\"image\" src=\"https://user-images.githubusercontent.com/14998939/186355873-036d7e63-3326-4e24-a105-9f8486d03ee6.gif\"\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"family\" tabindex=\"-1\"\u003eFamily\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth\u003elanguage\u003c/th\u003e\n\u003cth\u003esource, docs\u003c/th\u003e\n\u003cth\u003epackage\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003epq\u003c/td\u003e\n\u003ctd\u003eCLI (brew, scoop)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/blob/alpha/src/bin/pq.rs\"\u003esource\u003c/a\u003e, \u003ca href=\"https://piqel.vercel.app/docs/pq\"\u003edoc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003epiqel\u003c/td\u003e\n\u003ctd\u003eRust (cargo)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel\"\u003esource\u003c/a\u003e, \u003ca href=\"https://piqel.vercel.app/docs/pq\"\u003edoc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://crates.io/crates/piqel\"\u003ehttps://crates.io/crates/piqel\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003epiqel-js\u003c/td\u003e\n\u003ctd\u003eJavaScript (npm)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-js\"\u003esource\u003c/a\u003e, \u003ca href=\"https://piqel.vercel.app/docs/piqel-js\"\u003edoc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://www.npmjs.com/package/piqel\"\u003ehttps://www.npmjs.com/package/piqel\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003epiqel-py\u003c/td\u003e\n\u003ctd\u003ePython (pip)\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-py\"\u003esource\u003c/a\u003e, \u003ca href=\"https://piqel.vercel.app/docs/piqel-py\"\u003edoc\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://pypi.org/project/piqel\"\u003ehttps://pypi.org/project/piqel\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"table-of-contants\" tabindex=\"-1\"\u003eTable of Contants\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#Features\"\u003eFeatures\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#Motivation\"\u003eMotivation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#Usage\"\u003eUsage\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"#pretty-print\"\u003epretty print\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#convert-file-format\"\u003econvert file format\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#calculate-BMI\"\u003ecalculate BMI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#Installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#Test\"\u003eTest\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"#LICENCE\"\u003eLICNECE\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"features\" tabindex=\"-1\"\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSQL-like query …  You can use SELECT, WHERE, ORDER BY, LIMIT clauses to select and transform data.\u003c/li\u003e\n\u003cli\u003eSupported data format … CSV, JSON, YAML, TOML. Table data as used in RDB and structured data such as JSON cab be accessed by SQL-like query.\u003c/li\u003e\n\u003cli\u003eWide range of uses … This can be used as a CLI tool (pq),  as a PartiqQL server with piqel(rust) or piqel-js, or data analysis with piqel-py.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"motivation\" tabindex=\"-1\"\u003eMotivation\u003c/h2\u003e\n\u003cp\u003eWhat’s \u003ca href=\"https://partiql.org/\"\u003ePartiQL\u003c/a\u003e?\u003c/p\u003e\n\u003ch2 id=\"usage\" tabindex=\"-1\"\u003eUsage\u003c/h2\u003e\n\u003ch3 id=\"pretty-print\" tabindex=\"-1\"\u003epretty print\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eoption\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e-c, --compact\u003c/td\u003e\n\u003ctd\u003ecompact instead of pretty-printed output, only when outputting in JSON\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e-S, --sort-keys\u003c/td\u003e\n\u003ctd\u003esort keys of objects on output. it on works when --to option is json, currently\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl -s \u0026quot;https://api.github.com/repos/fuyutarow/piqel/commits?per_page=1\u0026quot; | pq\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"convert-file-format\" tabindex=\"-1\"\u003econvert file format\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eoption\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e-f, --from \u003cfrom\u003e\u003c/from\u003e\u003c/td\u003e\n\u003ctd\u003etarget config file [possible values: csv, json, toml, yaml, xml]\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e-t, --to \u003cto\u003e\u003c/to\u003e\u003c/td\u003e\n\u003ctd\u003etarget config file [possible values: csv, json, toml, yaml, xml]\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003euse \u003ccode\u003e-t\u003c/code\u003e option c to convert Json, Yaml, Toml, and XML to each other.\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecat pokemon.json | pq -t yaml\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecat pokemon.json | pq -t yaml | pq -t toml\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eComparison with existing command yj\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn1\" id=\"fnref1\"\u003e[1]\u003c/a\u003e\u003c/sup\u003e\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eformat\u003c/th\u003e\n\u003cth\u003epq\u003c/th\u003e\n\u003cth\u003eyj\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eJSON\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTOML\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003ctd\u003e⚠️*1\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eYAML\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eXML\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCSV\u003c/td\u003e\n\u003ctd\u003e✅\u003c/td\u003e\n\u003ctd\u003e❌\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e*1 TOML of the following format cannot be serialized with \u003ccode\u003eyj\u003c/code\u003e, but it can be serialized with \u003ccode\u003epq\u003c/code\u003e by replacing the fields accordingly.\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-json:pakcge.json json:pakcge.json\"\u003e{\n  \u0026quot;name\u0026quot;: \u0026quot;partiql-pokemon\u0026quot;,\n  \u0026quot;dependencies\u0026quot;: {\n    \u0026quot;react\u0026quot;: \u0026quot;^16.13.1\u0026quot;,\n    \u0026quot;react-dom\u0026quot;: \u0026quot;^16.13.1\u0026quot;\n  },\n  \u0026quot;license\u0026quot;: \u0026quot;MIT\u0026quot;\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eoption\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003e-q\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eクエリ\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003equery\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eSELECT \u0026lt;field_path\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eSELECT \u0026lt;field_path\u0026gt; AS \u0026lt;alias_path\u0026gt;\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"calculate-bmi\" tabindex=\"-1\"\u003eCalculate BMI\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eDownload the file and then calculate BMI in a local.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl -s https://raw.githubusercontent.com/fuyutarow/pokemon.json/master/en/pokemon.json | pq -q \u0026quot;SELECT name, weight/height/height AS bmi ORDER BY bmi DESC LIMIT 20\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003col start=\"2\"\u003e\n\u003cli\u003eIn a terminal, send a query to the server to calculate BMI in a remote.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl https://partiql-pokemon.vercel.app/api/pokemon/ja -G --data-urlencode \u0026quot;q= SELECT name, weight/height/height AS bmi ORDER BY bmi DESC LIMIT 20\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003col start=\"3\"\u003e\n\u003cli\u003eIn a web browser, send a query to the server to calculate BMI in a remote.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ca href=\"https://partiql-pokemon.vercel.app/api/pokemon/ja?q=%20SELECT%20name,%20weight/height/height%20AS%20%20bmi%20ORDER%20BY%20bmi%20DESC%20LIMIT%2020\"\u003e\npartiql-pokemon.vercel.app/api/pokemon/en?q= SELECT name, weight/height/height AS  bmi ORDER BY bmi DESC LIMIT 20\n\u003c/a\u003e\n\u003ch2 id=\"installation\" tabindex=\"-1\"\u003eInstallation\u003c/h2\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ebrew install fuyutarow/tap/pq\npq -h\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003escoop install pq\npq -h\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"convert-data\" tabindex=\"-1\"\u003eConvert data\u003c/h3\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-\"\u003eenv | jo | pq \u0026quot;SELECT NAME AS name, USER AS user\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003eip\u003c/code\u003e command is only available in Linux and WSL, not in Mac.\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-\"\u003eip -j -p | pq \u0026quot;$(cat\u0026lt;\u0026lt;EOS\nSELECT\n  address,\n  info.family AS inet,\n  info.local\nFROM addr_info AS info\nWHERE inet LIKE 'inet%'\nEOS\n)\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003e[x] SELECT\u003c/li\u003e\n\u003cli\u003e[x] FROM\u003c/li\u003e\n\u003cli\u003e[x] LEFT JOIN\u003c/li\u003e\n\u003cli\u003e[x] WHERE\u003c/li\u003e\n\u003cli\u003e[x] LIKE\u003c/li\u003e\n\u003cli\u003e[x] ORDER BY\u003c/li\u003e\n\u003cli\u003e[x] LIMIT\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/tests-make\"\u003emore examples\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"test\" tabindex=\"-1\"\u003eTest\u003c/h2\u003e\n\u003cp\u003eUse \u003ca href=\"https://github.com/fuyutarow/tests-make\"\u003etests-make\u003c/a\u003e to test CLI \u003ccode\u003epq\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ebrew install fuyutarow/tap/tests-make\ntests-make tests-make/index.toml\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eor\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003emakers test:pq\n\u003c/code\u003e\u003c/pre\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003econtent\u003c/th\u003e\n\u003cth\u003etest\u003c/th\u003e\n\u003cth\u003ecommand\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/blob/alpha/src/bin/pq.rs\"\u003epq\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/tests-make\"\u003etest\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emakers test:pq\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel\"\u003epiqel\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/tests\"\u003etest\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emakers test:lib\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-js\"\u003epiqel-js\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-js/tests\"\u003etest\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emakers test:js\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-py\"\u003epiqel-py\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://github.com/fuyutarow/piqel/tree/alpha/piqel-py/tests\"\u003etest\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emakres test:py\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eall\u003c/td\u003e\n\u003ctd\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode\u003emakers test\u003c/code\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"code-coverage\" tabindex=\"-1\"\u003ecode coverage\u003c/h2\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh: sh:\"\u003ecargo install cargo-kcov\ncargo kcov\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eor\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003emakers cov\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"preparation\" tabindex=\"-1\"\u003ePreparation\u003c/h3\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-\"\u003emakers install-dev\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"build\" tabindex=\"-1\"\u003ebuild\u003c/h3\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-\"\u003emakers build\nmakers build:pq ;: for pq commnad\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"licence\" tabindex=\"-1\"\u003eLICENCE\u003c/h2\u003e\n\u003ch2 id=\"appendix\" tabindex=\"-1\"\u003eAppendix\u003c/h2\u003e\n\u003ch3 id=\"comparison-of-tools-that-can-extract-fields\" tabindex=\"-1\"\u003eComparison of tools that can extract fields\u003c/h3\u003e\n\u003cp\u003ejq\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn2\" id=\"fnref2\"\u003e[2]\u003c/a\u003e\u003c/sup\u003e approach\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl -s \u0026quot;https://api.github.com/repos/fuyutarow/piqel/commits?per_page=1\u0026quot; | jq  \u0026quot;.[].commit.author\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003egron\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn3\" id=\"fnref3\"\u003e[3]\u003c/a\u003e\u003c/sup\u003e approach\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl -s \u0026quot;https://api.github.com/repos/fuyutarow/piqel/commits?per_page=1\u0026quot; | gron | grep \u0026quot;commit.author\u0026quot; | gron -u\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003enusehll\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn4\" id=\"fnref4\"\u003e[4]\u003c/a\u003e\u003c/sup\u003e approach\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:nu$ sh:nu$\"\u003ecurl -s \u0026quot;https://api.github.com/repos/fuyutarow/piqel/commits?per_page=1\u0026quot; | from json | get commit.author | to json\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003epq\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn5\" id=\"fnref5\"\u003e[5]\u003c/a\u003e\u003c/sup\u003e approach\u003c/p\u003e\n\u003cpre class=\"code-block\"\u003e\u003ccode class=\"language-sh:$ sh:$\"\u003ecurl -s \u0026quot;https://api.github.com/repos/fuyutarow/piqel/commits?per_page=1\u0026quot; | pq -q \u0026quot;SELECT commit.author\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3 id=\"utils\" tabindex=\"-1\"\u003eutils\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emakers\u003csup class=\"footnote-ref\"\u003e\u003ca href=\"#fn6\" id=\"fnref6\"\u003e[6]\u003c/a\u003e\u003c/sup\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr class=\"footnotes-sep\"\u003e\n\u003csection class=\"footnotes\"\u003e\n\u003col class=\"footnotes-list\"\u003e\n\u003cli id=\"fn1\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/sclevine/yj\"\u003ehttps://github.com/sclevine/yj\u003c/a\u003e \u003ca href=\"#fnref1\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn2\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/stedolan/jq\"\u003ehttps://github.com/stedolan/jq\u003c/a\u003e \u003ca href=\"#fnref2\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn3\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/tomnomnom/gron\"\u003ehttps://github.com/tomnomnom/gron\u003c/a\u003e \u003ca href=\"#fnref3\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn4\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/nushell/nushell\"\u003ehttps://github.com/nushell/nushell\u003c/a\u003e \u003ca href=\"#fnref4\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn5\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/fuyutarow/piqel\"\u003ehttps://github.com/fuyutarow/piqel\u003c/a\u003e \u003ca href=\"#fnref5\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli id=\"fn6\" class=\"footnote-item\"\u003e\u003cp\u003e\u003ca href=\"https://github.com/sagiegurari/cargo-make\"\u003ehttps://github.com/sagiegurari/cargo-make\u003c/a\u003e … Run \u003ccode\u003ecargo install cargo-make\u003c/code\u003e to use \u003ccode\u003emakers\u003c/code\u003e commnad. \u003ca href=\"#fnref6\" class=\"footnote-backref\"\u003e↩︎\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/section\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuyutarow%2Fpiqel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuyutarow%2Fpiqel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuyutarow%2Fpiqel/lists"}