# What's the difference between CSV.jl and CSVFiles.jl?

**URL:** <https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950>\
**Category:** New to Julia\
**Created:** [November 24, 2018, 7:51pm UTC](https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950 "2018-11-24T19:51:46Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [November 24, 2018, 9:15pm UTC](https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950/2 "2018-11-24T21:15:01Z")

</div>

They are two independent CSV readers. You should use whichever suits your needs better 🙂

I maintain [CSVFilesjl](https://github.com/queryverse/CSVFiles.jl), so I can probably better speak to that one. Here are some things I like about it:

- It is part of the larger [Queryverse.jl](https://github.com/queryverse/Queryverse.jl) file IO story, which gives you a nice uniform API not just for CSV files, but also [ExcelFiles.jl](https://github.com/queryverse/ExcelFiles.jl), [FeatherFiles.jl](https://github.com/queryverse/FeatherFiles.jl), [StatFiles.jl](https://github.com/queryverse/StatFiles.jl) (Stata, SPSS, and SAS files), and [ParquetFiles.jl](https://github.com/queryverse/ParquetFiles.jl). All of that is documented [here](http://www.david-anthoff.com/jl4ds/stable/fileio.html).
- It works with any source or sink that implements the [TableTraits.jl](https://github.com/queryverse/TableTraits.jl) interface. When I last counted that was something like 21 packages.
- It uses [TextParse.jl](https://github.com/JuliaComputing/TextParse.jl) under the hood, which is [fast](https://discourse.julialang.org/t/textparse-jl-is-fast-again/16664). And getting faster, there are a bunch of things on `master` and in branches that are not yet reflected in the benchmarks I posted there.
- It is a mature package, by julia standards. Its been around for about 1.5 years. It gets a continues stream of improvements, but the basic structure has been settled and battle tested since the beginning. It has been a very stable story, and I expect that to stay that way going forward, i.e. I generally try very hard to not break things, and the track record so far has been pretty good, I think 🙂
- You can read gz compressed files out of the box. I’m just mentioning this here, because in a hilarious twist the package has supported that for a long time, but I only found out a few weeks ago 🙂 See [here](https://github.com/queryverse/CSVFiles.jl/issues/33).

---

_[View the full topic](https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950)._
