https://mmalcek.github.io/bafi/
Universal JSON, BSON, YAML, CSV, XML, mt940 converter with templates
https://mmalcek.github.io/bafi/
bson convert converter csv csv-to-json csv-to-xml formatter json json-to-xml mt940 parser xml xml-to-json yaml
Last synced: 4 months ago
JSON representation
Universal JSON, BSON, YAML, CSV, XML, mt940 converter with templates
- Host: GitHub
- URL: https://mmalcek.github.io/bafi/
- Owner: mmalcek
- License: mit
- Created: 2021-07-13T10:48:40.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-09-05T22:29:07.000Z (7 months ago)
- Last Synced: 2025-09-06T00:21:53.655Z (7 months ago)
- Topics: bson, convert, converter, csv, csv-to-json, csv-to-xml, formatter, json, json-to-xml, mt940, parser, xml, xml-to-json, yaml
- Language: Go
- Homepage: https://mmalcek.github.io/bafi/
- Size: 4.11 MB
- Stars: 108
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-apps-in-a-csv - BaFi - Universal JSON, BSON, YAML, CSV, XML translator to ANY format using templates. (<a name="conversion"></a>Conversion)
- awesome-cli-apps - BaFi - Universal JSON, BSON, YAML, CSV, XML translator to ANY format using templates. (<a name="conversion"></a>Conversion)
README
[](https://github.com/mmalcek/bafi/actions/workflows/go.yml)
[](https://github.com/mmalcek/bafi/actions/workflows/codeql-analysis.yml)
[](https://goreportcard.com/report/github.com/mmalcek/bafi)
[](https://github.com/mmalcek/bafi/blob/main/LICENSE)
[](https://github.com/avelino/awesome-go#text-processing)
[](https://github.com/mmalcek/bafi/releases/latest)
# Universal JSON, BSON, YAML, CSV, XML, mt940 translator to ANY format using templates

## Key features
- Various input formats **(json, bson, yaml, csv, xml, mt940)**
- Flexible output formatting using text templates
- Support for [Lua](https://www.lua.org/pil/contents.html) custom functions which allows very flexible data manipulation
- stdin/stdout support which allows get data from source -> translate -> delivery to destination. This allows easily translate data between different web services like **REST to SOAP, SOAP to REST, REST to CSV, ...**
- Merge multiple input files in various formats into single output file formated using template
- Support chatGPT queries to analyze or format data (experimental)
## Documentation [https://mmalcek.github.io/bafi/](https://mmalcek.github.io/bafi/)
## Releases (Windows, MAC, Linux) [https://github.com/mmalcek/bafi/releases](https://github.com/mmalcek/bafi/releases)
usage:
```
bafi.exe -i testdata.xml -t template.tmpl -o output.txt
```
or
```
curl.exe -s https://api.predic8.de/shop/customers/ | bafi.exe -f json -t "?{{toXML .}}"
```
or
```
curl -s https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml | ./bafi -f xml -gk myChatGPTToken -gq "What's the current CZK rate?"
```
More examples and description in [documentation](https://mmalcek.github.io/bafi/)
**If you like this app you can buy me a coffe ;)**