20 points par GN⁺ 2024-08-19 | 1 commentaires | Partager sur WhatsApp
  • Outil permettant d’interroger et de modifier des structures de données à l’aide de chaînes de sélecteurs
    • Prend en charge JSON, YAML, TOML, XML et CSV, sans dépendances à l’exécution
    • Inutile d’apprendre un nouvel outil pour manipuler différents formats de données
    • Utilise une syntaxe de sélecteur standard, ce qui permet, une fois apprise, d’interroger/modifier tous les formats de données pris en charge
  • Installation possible via homebrew, ASDF, scoop, docker, Nix ou avec des binaires compilés depuis la dernière release
    • Prend aussi en charge l’autocomplétion dans le terminal
  • Fonctionnalités
    • Interrogation/sélection de données dans des fichiers de données structurées
    • Mise à jour de données dans des fichiers de données structurées
    • Création de fichiers de données
    • Prise en charge de plusieurs formats/types de données
    • Conversion entre formats/types de données
    • Utilisation d’une syntaxe standard de requête/sélecteur sur tous les formats de données
    • Aucune dépendance à l’exécution
    • Disponible sur Linux, Mac et Windows
    • Peut être importé et utilisé dans vos propres projets
    • Exécutable via Docker
    • Plus rapide que jq/yq
    • Hook pre-commit
  • Playground
    • Fournit un playground permettant de tester les commandes dasel
    • Le code source du playground est disponible sur github.com/TomWright/daselplayground
  • Benchmarks
    • Les résultats des tests montrent que dasel est jusqu’à 3 fois plus rapide que jq et jusqu’à 15 fois plus rapide que yq
    • Consultables dans le répertoire benchmark

Résumé GN⁺

  • Dasel est un outil prenant en charge différents formats de données et permettant de les interroger et de les modifier facilement grâce à une syntaxe de sélecteur standard
  • Il n’a aucune dépendance à l’exécution, fonctionne sur plusieurs plateformes et est plus rapide que jq/yq
  • Il propose plusieurs méthodes d’installation et un hook pre-commit, ce qui facilite son intégration dans l’environnement de développement
  • Il est utile pour les projets qui nécessitent des conversions entre formats de données ou qui manipulent plusieurs formats de données
  • Parmi les outils offrant des fonctionnalités similaires, on trouve jq, yq, etc.

1 commentaires

 
GN⁺ 2024-08-19
Commentaire Hacker News
  • L’idée d’utiliser une syntaxe de type SQL pour interroger des stockages de données non relationnels est bonne
    • Cela amène à se demander si tous les formats de stockage de données peuvent être interrogés en SQL
  • Si l’on préfère une requête de style jq, on peut utiliser qq
  • On peut utiliser Nushell pour traiter divers formats
  • On dirait que ce genre d’outils attire l’attention chaque trimestre
    • On attend que des gens montrent ou listent des outils qui couvrent leur cas d’usage spécifique
    • On apprend toujours beaucoup de choses
  • Beau projet, mais il faut un langage de requête standardisé
    • Il est difficile d’intérioriser la syntaxe de requête de jq
    • On hésite à investir du temps d’apprentissage si ce n’est pas un standard largement adopté
    • JMESPath pourrait être la voie à suivre
    • gron est intuitif et s’intègre bien avec d’autres outils
  • Beaucoup utilisé ce genre d’outils en Go
    • Parfois, on veut seulement transformer du yaml sans le parser
    • Pouvoir sélectionner, remplacer et ajouter des données dans un document yaml existant aide énormément pour l’automatisation
  • Un outil similaire pour les fichiers ini
  • Une autre liste d’outils
  • Expérience récente avec JMESPath sur AWS
    • On se demande quels outils de données structurées sont les plus faciles à apprendre, les mieux documentés et les plus rapides à écrire
    • Demande si quelqu’un connaît un bon article comparatif
    • Continue malgré tout à utiliser jq par défaut
  • yq fait déjà cela, mais d’après le README, c’est lent