Rscsv

Fast CSV using Rust extensions. Can read arrays of arrays from strings and write strings from arrays of arrays.

Build Status

Installation

This gem requires Rust (~> 1.17) and Cargo to be installed. With those requirements fulfilled, rscsv can be installed like any other gem:

gem install rscsv

Usage

require 'rscsv'

Rscsv::Writer.generate_lines([['1', '2', '3'], ['3', '4', '5']])
# => 1,2,3\n4,5,6\n
Rscsv::Writer.generate_line(['1', '2', '3'])
# => 1,2,3\n

Rscsv::Reader.parse("1,2,3\n4,5,6\n")
# => [["1", "2", "3"], ["4", "5", "6"]]

# Streaming from Enumerator
Rscsv::Reader.each(["1,2,3\n","4,5,6\n"].each) do |row|
  # yields ["1", "2", "3"] and ["4", "5", "6"]
end

This is ~3x faster than using native Ruby CSV.generate or CSV.parse.