20 điểm bởi GN⁺ 2024-08-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • Công cụ cho phép truy vấn và chỉnh sửa cấu trúc dữ liệu bằng chuỗi selector
    • Hỗ trợ JSON, YAML, TOML, XML, CSV và không có phụ thuộc runtime
    • Không cần học công cụ mới để xử lý nhiều định dạng dữ liệu khác nhau
    • Sử dụng cú pháp selector tiêu chuẩn, chỉ cần học một lần là có thể truy vấn/chỉnh sửa mọi định dạng dữ liệu được hỗ trợ
  • Có thể cài đặt bằng homebrew, ASDF, scoop, docker, Nix hoặc binary được biên dịch từ bản phát hành mới nhất
    • Cũng hỗ trợ tự động hoàn thành trong terminal
  • Tính năng
    • Truy vấn/chọn dữ liệu từ các tệp dữ liệu có cấu trúc
    • Cập nhật dữ liệu trong các tệp dữ liệu có cấu trúc
    • Tạo tệp dữ liệu
    • Hỗ trợ nhiều định dạng/kiểu dữ liệu
    • Chuyển đổi giữa các định dạng/kiểu dữ liệu
    • Sử dụng cú pháp truy vấn/selector tiêu chuẩn trên mọi định dạng dữ liệu
    • Không có phụ thuộc runtime
    • Dùng được trên Linux, Mac, Windows
    • Có thể import và sử dụng trong chính dự án của bạn
    • Có thể chạy qua Docker
    • Nhanh hơn jq/yq
    • Pre-commit hook
  • Playground
    • Cung cấp playground để thử nghiệm lệnh dasel
    • Mã nguồn của playground có thể xem tại github.com/TomWright/daselplayground
  • Benchmarks
    • Kết quả thử nghiệm cho thấy dasel nhanh hơn jq tới 3 lần và nhanh hơn yq tới 15 lần
    • Có thể xem trong thư mục benchmark

Tóm tắt của GN⁺

  • Dasel là công cụ hỗ trợ nhiều định dạng dữ liệu, cho phép truy vấn và chỉnh sửa dễ dàng bằng cú pháp selector tiêu chuẩn
  • Không có phụ thuộc runtime, dùng được trên nhiều nền tảng và nhanh hơn jq/yq
  • Cung cấp nhiều cách cài đặt và pre-commit hook, giúp dễ dàng tích hợp vào môi trường phát triển
  • Hữu ích cho các dự án cần chuyển đổi giữa các định dạng dữ liệu hoặc xử lý nhiều định dạng dữ liệu khác nhau
  • Các công cụ có chức năng tương tự gồm jq, yq

1 bình luận

 
GN⁺ 2024-08-19
Ý kiến trên Hacker News
  • Ý tưởng dùng cú pháp kiểu SQL để truy vấn các kho dữ liệu phi quan hệ rất hay
    • Khiến người ta tự hỏi liệu có thể truy vấn mọi định dạng lưu trữ dữ liệu bằng SQL hay không
  • Nếu thích truy vấn kiểu jq, bạn có thể dùng qq
  • Có thể dùng Nushell để xử lý nhiều định dạng khác nhau
  • Có cảm giác những công cụ như thế này lại được chú ý mỗi quý một lần
    • Đang chờ mọi người giới thiệu hoặc liệt kê những công cụ hỗ trợ đúng trường hợp sử dụng cụ thể của họ
    • Luôn học được rất nhiều thứ
  • Dự án rất tuyệt, nhưng cần một ngôn ngữ truy vấn được chuẩn hóa
    • Khó có thể ghi nhớ và thấm nhuần cú pháp truy vấn của jq
    • Nếu không phải là một tiêu chuẩn được chấp nhận rộng rãi thì khá ngại đầu tư công sức học
    • JMESPath có thể là hướng đi tiếp theo
    • gron khá trực quan và phối hợp tốt với các công cụ khác
  • Đã dùng khá nhiều công cụ kiểu này trong Go
    • Đôi khi chỉ muốn biến đổi yaml mà không cần parse nó
    • Khả năng chọn, thay thế và thêm dữ liệu vào tài liệu yaml hiện có rất hữu ích cho tự động hóa
  • Công cụ tương tự cho file ini
  • Một danh sách công cụ khác
  • Gần đây có trải nghiệm dùng JMESPath trong AWS
    • Tò mò không biết công cụ dữ liệu có cấu trúc nào dễ học hơn, tài liệu tốt hơn và viết nhanh hơn
    • Hỏi xem có ai biết bài viết so sánh nào hay không
    • Vẫn dùng jq làm mặc định
  • yq đã làm được việc đó, nhưng theo README thì chậm