A command-line tool and library for querying, modifying, and converting data across JSON, YAML, TOML, XML, CSV, HCL, and INI formats.
Dasel (Data-Select) is a command-line utility and Go library for querying, modifying, and converting structured data files. It provides a unified syntax to work with multiple formats like JSON, YAML, TOML, XML, CSV, HCL, and INI, eliminating the need to learn separate tools for each format.
Developers, DevOps engineers, and data professionals who need to manipulate structured data in scripts, pipelines, or Go applications, especially those working with configuration files or data transformation tasks across different formats.
Developers choose Dasel for its consistent query syntax across all supported data formats, powerful data modification capabilities, and seamless integration into shell scripts and Go projects, making it a versatile single tool for diverse structured data operations.
Select, put and delete data from JSON, TOML, YAML, XML, INI, HCL and CSV files with a single tool. Also available as a go mod.
Dasel works seamlessly with JSON, YAML, TOML, XML, CSV, HCL, and INI files using a consistent syntax, eliminating the need for separate tools per format as highlighted in the README's key features.
It provides intuitive selectors like recursive descent (..) and search functions for traversing data across all formats, demonstrated in the basic usage examples for extracting nested values.
Designed for seamless integration into shell scripts and pipelines, with simple commands like `dasel -i json 'foo.bar'` for easy data extraction and modification.
Available as a Go module, allowing developers to use Dasel's capabilities programmatically within their Go applications without external dependencies, as mentioned in the features list.
The unified syntax, while powerful, has a steeper learning curve compared to format-specific tools like jq for JSON, requiring users to adapt to a new query language that may not be immediately intuitive.
Dasel processes entire files in memory, which can be inefficient for very large datasets and lacks native support for streaming data or incremental processing, focusing only on complete file operations as per the CLI examples.
The README focuses on success cases; in practice, parsing errors with complex formats like XML or malformed CSV might not be gracefully handled, and edge cases could require additional tooling or manual intervention.
Command-line JSON processor
Terminal JSON viewer & processor
yq is a portable command-line YAML, JSON, XML, CSV, TOML, HCL and properties processor
go generate based graphql server library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.