CSV handling library for Elixir.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore Initial commit Nov 28, 2013
README.md cesso: properly namespace modules Apr 4, 2014
mix.exs mix: bump version and Elixir requirement Jun 18, 2014

README.md

cesso - CSV parser for Elixir

Simple library to parse CSV lazily, especially made to parse huge exported databases.

Examples

use Cesso

CSV.decode(~s<lol,wut>)
  |> IO.inspect # => [["lol", "wut"]]

# string columns are supported
CSV.decode(~s<lol,"wut,omg">)
  |> IO.inspect # => [["lol", "wut,omg"]]

# they can also span multiple lines
CSV.decode(~s<lol,"wut\nomg",hue>)
  |> IO.inspect # => [["lol", "wut\nomg", "hue"]]

# you can also specify a different separator
CSV.decode(~s<lol|||wut>, separator: "|||")
  |> IO.inspect # => [["lol", "wut"]]

# the first row can be used as column names
CSV.decode(~s<a,b\nlol,wut>, columns: true)
  |> IO.inspect [[{ "a", "lol" }, { "b", "wut" }]]

# otherwise you can pass the column names
CSV.decode(~s<lol,wut>, columns: ["a", "b"])
 |> IO.inspect [[{ "a", "lol" }, { "b", "wut" }]]

# you can also parse a file
CSV.decode(File.stream!("db.csv"))