20 ポイント 投稿者 GN⁺ 2024-08-19 | 1件のコメント | WhatsAppで共有
  • セレクタ文字列を使ってデータ構造をクエリし、変更できるようにするツール
    • JSON、YAML、TOML、XML、CSVをサポートし、ランタイム依存関係がない
    • さまざまなデータ形式を扱うために新しいツールを学ぶ必要がない
    • 標準セレクタ構文を使用して、一度学べばすべての対応データ形式をクエリ・変更できる
  • homebrew、ASDF、scoop、docker、Nix、または最新リリースのコンパイル済みバイナリからインストール可能
    • ターミナル補完にも対応
  • Features
    • 構造化データファイルからのデータのクエリ・選択
    • 構造化データファイル内のデータ更新
    • データファイルの作成
    • 複数のデータ形式・タイプをサポート
    • データ形式・タイプ間の変換
    • すべてのデータ形式で標準クエリ・セレクタ構文を使用
    • ランタイム依存関係なし
    • Linux、Mac、Windowsで利用可能
    • 自身のプロジェクトに取り込んで利用可能
    • Docker経由で実行可能
    • jq/yqより高速
    • Pre-commitフック
  • Playground
    • daselコマンドを試せるプレイグラウンドを提供
    • プレイグラウンドのソースコードは github.com/TomWright/daselplayground で確認可能
  • Benchmarks
    • テスト結果では、daselはjqより最大3倍、yqより最大15倍高速
    • ベンチマークディレクトリで確認可能

GN⁺のまとめ

  • Daselは多様なデータ形式をサポートし、標準セレクタ構文を使って簡単にクエリおよび変更できるツール
  • ランタイム依存関係がなく、複数のプラットフォームで利用でき、jq/yqより高速
  • さまざまなインストール方法とpre-commitフックを提供し、開発環境に容易に統合できる
  • データ形式間の変換が必要な場合や、複数のデータ形式を扱うプロジェクトで有用
  • 類似機能を持つツールとしては jq、yq などがある

1件のコメント

 
GN⁺ 2024-08-19
Hacker Newsのコメント
  • SQLスタイルの文法を使って非リレーショナルなデータストアをクエリするというアイデアは良い
    • あらゆるデータ保存形式をSQLでクエリできるのか気になる
  • jqスタイルのクエリを好むなら qq を使える
  • Nushellを使ってさまざまな形式を扱える
  • こうしたツールは四半期ごとに注目を集めている気がする
    • 人々が自分たちの特定のユースケースをサポートするツールを見せたり列挙したりするのを待っている
    • いつも多くを学べる
  • すばらしいプロジェクトだが、標準化されたクエリ言語が必要
    • jqのクエリ構文を内在化するのは難しい
    • 広く採用された標準でないなら学習に投資するのをためらう
    • JMESPath が今後進むべき道かもしれない
    • gron は直感的で、ほかのツールとも相性が良い
  • Goでこういうツールをよく使っていた
    • yamlをパースせずに変形だけしたいことがある
    • 既存のyaml文書でデータを選択・置換・追加できる機能は自動化に大いに役立つ
  • iniファイル向けの類似ツール
  • 別のツール一覧
  • 最近AWSでJAMESPathを使ってみた経験がある
    • どの構造化データツールがより学びやすく、文書化が充実していて、記述速度が速いのか気になる
    • 良い比較記事を知っている人がいないか尋ねている
    • 依然としてjqをデフォルトで使っている
  • yqはすでにその機能を果たしているが、READMEによれば遅い