CSV and object generation implementing the Node.js `stream.Readable` API

Usage no npm install needed!

<script type="module">
  import csvGenerate from 'https://cdn.skypack.dev/csv-generate';


CSV generator for Node.js and the web

Build Status NPM NPM

The csv-generate package provides a flexible generator of random CSV strings and Javascript objects implementing the Node.js stream.Readable API. It is part of the CSV project.


Main features

  • Scalable stream.Readable implementation
  • random or pseudo-random seed based generation
  • Idempotence with the "seed" option
  • User-defined value generation
  • Multiple types of values (integer, boolean, dates, ...)
  • MIT License


Run npm install csv to install the full csv module or run npm install csv-generate if you are only interested by the CSV generator.

Use the callback and sync APIs for simplicity or the stream based API for scalability.


The API is available in multiple flavors. This example illustrates the stream API.

import { generate } from 'csv-generate';
import assert from 'assert';

const records = [];
// Initialize the generator
  seed: 1,
  objectMode: true,
  columns: 2,
  length: 2
// Use the readable stream api to consume generated records
  .on('readable', function(){
    let record; while((record = this.read()) !== null){
// Catch any error
  .on('error', function(err){
// Test that the generated records matched the expected records
  .on('end', function(){
    assert.deepEqual(records, [
      [ 'OMH', 'ONKCHhJmjadoA' ],
      [ 'D', 'GeACHiN' ]


Tests are executed with Mocha. To install it, simple run npm install followed by npm test. It will install mocha and its dependencies in your project "node_modules" directory and run the test suite. The tests run against the CoffeeScript source files.

To generate the JavaScript files, run npm run coffee.

The test suite is run online with Travis. See the Travis definition file to view the tested Node.js version.


The project is sponsored by Adaltas, an Big Data consulting firm based in Paris, France.