{"id":36533882,"url":"https://github.com/varkappadev/dfmt","last_synced_at":"2026-01-12T03:04:36.451Z","repository":{"id":57627445,"uuid":"402354339","full_name":"varkappadev/dfmt","owner":"varkappadev","description":"A(nother) data file conversion and manipulation tool.","archived":false,"fork":false,"pushed_at":"2021-12-27T22:38:25.000Z","size":20,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2024-06-20T17:41:42.398Z","etag":null,"topics":["go","golang","json","toml","yaml"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/varkappadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-02T08:57:11.000Z","updated_at":"2024-06-20T17:41:42.399Z","dependencies_parsed_at":"2022-09-26T20:11:42.972Z","dependency_job_id":null,"html_url":"https://github.com/varkappadev/dfmt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/varkappadev/dfmt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varkappadev%2Fdfmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varkappadev%2Fdfmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varkappadev%2Fdfmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varkappadev%2Fdfmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/varkappadev","download_url":"https://codeload.github.com/varkappadev/dfmt/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/varkappadev%2Fdfmt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28332875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","json","toml","yaml"],"created_at":"2026-01-12T03:04:35.849Z","updated_at":"2026-01-12T03:04:36.443Z","avatar_url":"https://github.com/varkappadev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data File Multi-Tool\n\n## Summary \n\n`dfmt` is a tool for converting data files between formats (JSON, YAML,\nTOML, etc.).\n\nExample usage: \n\n```console\ndfmt convert in.json out.yaml\n```\n\nFor command line options:\n\n```console\ndfmt --help\n```\n\n## Features\n\nCurrently, the following formats are supported\n\nFormat|Input|Output\n------|-----|------\nJSON|supported|supported\nYAML|supported|supported\nTOML|supported|supported\nINI|supported|not supported\nstrings (by line or null-separated)|supported|not supported\ncharacter-separated fields (CSF)|supported|not supported\n\nFor INI and CSF files only, an attempt at converting strings consisting\nof only finite numbers is made if the corresponding command line option \nis given. This may result in slightly different output such as missing \nsurrounding spaces, rounding, etc. \n\nYAML multi-document files are supported but they are treated as an\narray and will therefore be converted to a single document for all\nformats, including to YAML itself.\n\n## Thanks\n\nMany thanks to the authors of the following libraries used in this\ntool:\n\n- https://github.com/BurntSushi/toml\n- https://github.com/jawher/mow.cli\n- https://github.com/go-ini/ini\n- https://github.com/go-yaml/yaml\n\n## Background and Limitations\n\nI needed a utility for conversions – mostly to JSON – and this is the\nsecond version of it, basically a port to golang. It does mostly what I\nneed. As such it may be totally useless/unsuitable for any other\npurpose.\n\nIn particular, the tool is not meant to be optimized for speed or\nmemory consumption. It will hold the data in memory between read and\nwrite.\n\n*Additional limitations:*\n\n- The CLI is not stable and it is not suitable for scripting at this \npoint.\n\n- Format-specific limitations on outputs apply and at the moment it is\nnot possible to configure things such as the default keys for TOML\noutput and INI input or case-(in)sensitivity of keys.\n\n- If strings are converted to numbers, an attempt at converting them \nto signed 64-bit integers is made. If that fails, they are converted to \nfloats with rounding. If this, in turn fails, they will be kept as\nstrings.\n\n- Non-finite floating point numbers (`+Inf`, `-Inf`, `NaN`) are kept as\nstrings even in transformation cases that parse numbers in input.\n\n- CSF configured without a field delimiter and with the record delimiters\ncorresponding to strings (NL or NUL) may behave like strings rather than \nas CSF input. \"May\" means this is undefined behaviour at this point.\nDifferent subcommands may have different behaviour and it may change \nover time.\n\nAlso check the [Issues\nsection](https://github.com/varkappadev/dfmt/issues) for reported bugs\nand limitations.\n\n## Issues and Contributions\n\nFeel free to report bugs. Please include sample input to reproduce any\nissues if possible.\n\nAdditional features will be limited to what I need personally. The\ncurrent plan is to include some transformations, mostly for data\nclean-up.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarkappadev%2Fdfmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvarkappadev%2Fdfmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarkappadev%2Fdfmt/lists"}