Transform between various data serialization formats
Last updated 2 years ago by kba .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install traf 
SYNC missed versions from official npm registry.


Transform between various data serialization formats




npm install traf


bower install



Install the package globally (npm install -g traf)

Usage: traf [options...] <input-file> [<output-file>]

Transform between different serialization formats

    -h --help                   Show this help
    -i --input-format FORMAT    Input format
    -o --output-format FORMAT   Output format
    -f --force                  Overwrite existing files
    -I --indent INDENT          Indent data with INDENT spaces per level

    <input-file>    Input filename.
                    Can be '-' to read from STDIN. Specify input format then.
    <output-file>   Output filename.
                    If omitted, derive output filename from input filename.
                    Can be '-' to write to STDOUT. Specify output format then.

Node JS

var t = new(require('traf'))();
console.log(t.parseSync("- 'foo'", {"format": "YAML"}));


<script src="./path/to/traf.js"></script>
<!-- or -->
<script src=""></script>
var t = new traf();
console.log(parseSync("- 'foo'", {"format": "YAML"}));

Code organization


A format is a set of rules how to serialize and deserialize data.

Every format has a subfolder in ./src/lib/backend.


Every format has one or more backends, extending the Backend base class.

Method suffixes

All functions are suffixed with the mechanism to execute them:


Method takes argument and options and returns the result or throws an exception.

try {
  data = traf.parseSync(str, {"format": "JSON"})
  // do stuff with data
} catch (e) {
  // handle error


Method takes argument, options and returns a callback with arguments err and result.

traf.parseAsync(str, {"format":"JSON"}, function(err, data) {
  if (err) {
    // handle error
  // handle data

Supported formats

parse stringify parseFile stringifyFile
Format Backend sync async sync async sync async sync async
JSON json
CSON cson-safe
TSON tson
XML xml2js
YAML js-yaml
CSV csv


  • ✓ : Supported
  • ≈ : Supported by wrapping the sync call
  • ✓ : Not Supported


parseSync(str, opts)

parseAsync(str, opts, cb)

Load a file in any of the supported serialization formats.


  • format: Input format

stringifySync(data, opts)

stringifyAsync(data, opts, cb)

Serializes the data passed to a string.


  • format: Output format

parseFileSync(filename, [opts])

parseFileAsync(filename, [opts], cb)


  • format: Input format
  • extensions: List of extensions to add to the filename in case it does not exist.

By default, input format is determined by extension.

Not available in the browser version.

stringifyFileSync(data, opts)

stringifyFileAsync(data, opts, cb)

Serializes the data passed to a string and writes it to a file.


  • filename: The filename to write to
  • format: If not given explicitly, determined by extension.

guessFiletype(filename, opts={})

Guess parser options by looking at the filename.

Will add information to opts, at least the format if it was recognized and possibly further options that can be guessed from the filename.

// {"format":"JSON"}
// {"format":"CSV", "delimiter": "\t"}

guessMimetypeFormat(mimetype, opts={})

Derive the format (e.g. JSON) from the MIME type (e.g. application/json)

Will return the found format

guessFilename(filename, opts)

Guess output filename by changing the extension to the outputExtension of the format in opts.

Current Tags

  • 1.1.0                                ...           latest (6 months ago)

13 Versions

  • 1.1.0                                ...           6 months ago
  • 1.0.1                                ...           2 years ago
  • 1.0.0                                ...           4 years ago
  • 0.0.10                                ...           4 years ago
  • 0.0.9                                ...           4 years ago
  • 0.0.8                                ...           4 years ago
  • 0.0.7                                ...           4 years ago
  • 0.0.6                                ...           4 years ago
  • 0.0.5                                ...           4 years ago
  • 0.0.4                                ...           4 years ago
  • 0.0.3                                ...           4 years ago
  • 0.0.2                                ...           4 years ago
  • 0.0.1                                ...           4 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (11)
Dev Dependencies (5)
Dependents (1)

Copyright 2014 - 2017 © |