日本語 English

JQ::Lite

Pure Perlで実装された軽量な jq 互換エンジン。制約の多い環境でも JSON や YAML を自在にクエリし、変換できます。

🪶 Pure Perl 🔍 jq 互換フィルタ 💻 CLI & モジュール ✅ Perl 5.14+ 対応 🌐 オフライン対応

主な特徴

🪶 純粋な Perl 実装

XS や C コンパイル不要。Perl が動く環境なら、どこでも同じように使えます。レガシー環境や閉域網でもインストールは簡単です。

🔍 jq スタイルのクエリ

.users[].nameselect(.age > 25) といった jq そのままの記法。条件分岐やマップ処理など、複雑なフィルタも思いのまま。

🧰 CLI & ライブラリ

コマンドラインツール jq-lite としても、Perl モジュールとしても利用可能。スクリプトに組み込んで JSON 変換を自動化できます。

インストール

CPAN から

cpanm JQ::Lite

最速で試すなら CPAN が便利。依存モジュールもまとめて解決します。

Homebrew (macOS)

brew tap kawamurashingo/jq-lite
brew install --HEAD jq-lite

macOS ユーザーは Homebrew からインストール可能。HEAD ビルドで最新の機能を体験できます。

ポータブルインストーラ

./download.sh [-v <version>] [-o /path/to/usb]
./install.sh [-p <prefix>] [--skip-tests] path/to/JQ-Lite.tar.gz

オンラインで取得してオフラインで展開。閉域環境でもセットアップできます。

使い方

Perl モジュールとして

use JQ::Lite;

my $jq = JQ::Lite->new;
my @names = $jq->run_query(
  '{"users":[{"name":"Alice"}]}',
  '.users[].name'
);
print join "\n", @names;

CLI ツールとして

jq-lite '.users[].name' users.json
jq-lite '.users[] | select(.age > 25)' users.json
jq-lite --yaml '.users[].name' users.yaml

インタラクティブモード

jq-lite users.json

入力ファイルを指定するだけで、フィルタを試しながら JSON を探索できます。

どんなときに便利?

制約の厳しいサーバ

コンパイラや root 権限がなくても導入可能。Perl が入っていればすぐに使えます。

CI/CD パイプライン

追加バイナリなしで JSON を検査・変換。スクリプト内で完結するのでメンテもしやすい。

データ探索・変換

jq に慣れたエンジニアにも違和感のない操作感。組み込みの 100+ 関数で複雑な処理もお手のもの。

お問い合わせ

JQ::Lite に関するご質問やご相談は以下のフォームからお送りください。開発チームが確認し、折り返しご連絡いたします。

送信すると、お使いのメールアプリが起動し、perl.jq.lite@gmail.com宛のメールが作成されます。