20P by neo 1달전 | favorite | 댓글 1개
  • 데이터 구조를 선택자 문자열을 사용하여 쿼리하고 수정할 수 있게 해주는 도구
    • 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 등이 있음
Hacker News 의견
  • SQL 스타일 문법을 사용하여 비관계형 데이터 저장소를 쿼리하는 아이디어가 좋음
    • 모든 데이터 저장 형식을 SQL로 쿼리할 수 있는지 궁금해짐
  • jq 스타일 쿼리를 선호하는 경우 qq를 사용할 수 있음
  • Nushell을 사용하여 다양한 형식을 처리할 수 있음
  • 매 분기마다 이러한 도구들이 주목받는 것 같음
    • 사람들이 자신들의 특정 사용 사례를 지원하는 도구를 보여주거나 나열하는 것을 기다리고 있음
    • 항상 많은 것을 배움
  • 멋진 프로젝트지만 표준화된 쿼리 언어가 필요함
    • jq 쿼리 문법을 내재화하기 어려움
    • 널리 채택된 표준이 아닌 경우 학습에 투자하기 꺼려짐
    • JMESPath가 앞으로 나아갈 길일 수 있음
    • gron이 직관적이고 다른 도구와 잘 어울림
  • Go에서 이런 도구를 많이 사용했음
    • yaml을 파싱하지 않고 변형만 하고 싶을 때가 있음
    • 기존 yaml 문서에 데이터를 선택하고 교체, 추가할 수 있는 기능이 자동화에 큰 도움이 됨
  • ini 파일을 위한 유사한 도구
  • 또 다른 도구 목록
  • 최근 AWS에서 JMESPath를 사용해본 경험이 있음
    • 어떤 구조화된 데이터 도구가 더 배우기 쉬운지, 문서화가 잘 되어 있는지, 작성 속도가 빠른지 궁금함
    • 좋은 비교 기사를 아는 사람이 있는지 물어봄
    • 여전히 jq를 기본으로 사용함
  • yq가 이미 그 기능을 수행하지만 README에 따르면 느림