Open-source Go projects categorized as CSV Edit details
Related topics: #Golang #JSON #Go #SQL #CLI

Top 23 Go CSV Projects

  • miller

    Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

    Project mention: Convert a Single line of JSON to csv using jq in shell bash script | reddit.com/r/commandline | 2022-07-24
  • gotenberg

    A Docker-powered stateless API for PDF files.

    Project mention: There is framework for everything. | reddit.com/r/ProgrammerHumor | 2022-08-04

    This isn't exactly what you're looking for but because I actually used pdfsharp/migradoc c# libraries for overlay but gotenberg is an amazing project I used for automated document conversion. Makes it so things like source controlled word docs can be converted and viewed via web as pdfs even on a protected network

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • octosql

    OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL.

    Project mention: Beginner interested in learning SQL. Have a few question that I wasn’t able to find on google. | reddit.com/r/SQL | 2022-08-06

    Through more magic, you COULD of course use stuff like Spark, or easier with programs like TextQL, sq, OctoSQL.

  • dsq

    Commandline tool for running SQL queries against JSON, CSV, Excel, Parquet, and more.

    Project mention: OctoSQL allows you to join data from different sources using SQL | news.ycombinator.com | 2022-07-14

    OctoSQL is an awesome project and Kuba has a lot of great experience to share from building this project I'm excited to learn from.

    And while building a custom database engine does allow you to do pretty quick queries, there are a few issues.

    First, the SQL implemented is nonstandard. As I was looking for documentation and it pointed me to `SELECT * FROM docs.functions fs`. I tried to count the number of functions but octosql crashed (a Go panic) when I ran `SELECT count(1) FROM docs.functions fs` and `SELECT count() FROM docs.functions fs` which is what I lazily do in standard SQL databases. (`SELECT count(fs.name) FROM docs.function fs` worked.)

    This kind of thing will keep happening because this project just doesn't have as much resources today as SQLite, Postgres, DuckDB, etc. It will support a limited subset of SQL.

    Second, the standard library seems pretty small. When I counted the builtin functions there were only 29. Now this is an easy thing to rectify over time but just noting about the state today.

    And third this project only has builtin support for querying CSV and JSON files. Again this could be easy to rectify over time but just mentioning the state today.

    octosql is a great project but there are also different ways to do the same thing.

    I build dsq [0] which runs all queries through SQLite so it avoids point 1. It has access to SQLite's standard builtin functions plus* a battery of extra statistic aggregation, string manipulation, url manipulation, date manipulation, hashing, and math functions custom built to help this kind of interactive querying developers commonly do [1].

    And dsq supports not just CSV and JSON but parquet, excel, ODS, ORC, YAML, TSV, and Apache and nginx logs.

    A downside to dsq is that it is slower for large files (say over 10GB) when you only want a few columns whereas octosql does better in some of those cases. I'm hoping to improve this over time by adding a SQL filtering frontend to dsq but in all cases dsq will ultimately use SQLite as the query engine.

    You can find more info about similar projects in octosql's Benchmark section but I also have a comparison section in dsq [2] and an extension of the octosql benchmark with different set of tools [3] including duckdb.

    Everyone should check out duckdb. :)

    [0] https://github.com/multiprocessio/dsq

    [1] https://github.com/multiprocessio/go-sqlite3-stdlib

    [2] https://github.com/multiprocessio/dsq#comparisons

    [3] https://github.com/multiprocessio/dsq#benchmark

  • trdsql

    CLI tool that can execute SQL queries on CSV, LTSV, JSON and TBLN. Can output to various formats.

    Project mention: What is the most user friendly way to upload CSV files into a SQL database? | reddit.com/r/SQL | 2022-07-14

    trdsql(https://github.com/noborus/trdsql) is a tool that executes SQL for files such as CSV, but it can also be used by connecting to MySQL. Therefore, SQL such as CREATE TABLE table AS SELECT * FROM csvfile.csv can also be executed.

  • csvq

    SQL-like query language for csv

    Project mention: One-liner for running queries against CSV files with SQLite | news.ycombinator.com | 2022-06-21
  • csvtk

    A cross-platform, efficient and practical CSV/TSV toolkit in Golang

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • csvutil

    csvutil provides fast and idiomatic mapping between CSV and Go (golang) values.

  • omniparser

    omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.

  • sq

    swiss-army knife for data

    Project mention: Beginner interested in learning SQL. Have a few question that I wasn’t able to find on google. | reddit.com/r/SQL | 2022-08-06

    Through more magic, you COULD of course use stuff like Spark, or easier with programs like TextQL, sq, OctoSQL.

  • querycsv

    QueryCSV enables you to load CSV files and manipulate them using SQL queries then after you finish you can export the new values to a CSV file

  • go-csv-tag

    Read csv file from go using tags

  • re-txt

    converts text-formats from one to another, it is very useful if you want to re-format a json file to yaml, toml to yaml, csv to yaml, ... etc

  • csvplus

    csvplus extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins.

  • nebula-importer

    Nebula Graph Importer with Go

    Project mention: How to Perform Load Testing against Nebula Graph with K6 | dev.to | 2021-12-01

    nebula-ansible deploys Nebula Graph services. nebula-importer imports data into Nebula Graph clusters. k6-plugin is a K6 extension that is used to perform load testing against the Nebula Graph cluster. The extension integrates with the nebula-go client to send requests during the testing. nebula-bench generates the LDBC dataset and then imports it into Nebula Graph. ldbc_snb_datagen_hadoop is a LDBC data generator.

  • bafi

    Universal JSON, BSON, YAML, CSV, XML converter with templates

    Project mention: I've just released new version of BaFi-1.0.13(Universal JSON, BSON, YAML, CSV, XML translator to ANY format using templates). Slightly faster and with new unixTime functions (dateToInt, intToDate) | reddit.com/r/linux | 2021-11-01
  • xyr

    Query any data source using SQL, works with the local filesystem, s3, and more. It should be a very tiny and lightweight alternative to AWS Athena, Presto ... etc.

    Project mention: A tiny portable presto alternative written in go | news.ycombinator.com | 2021-11-14
  • elastic-query-export

    🚚 Export Data from ElasticSearch to CSV/JSON using a Lucene Query (e.g. from Kibana) or a raw JSON Query string

    Project mention: Archiving the results of Elastic queries | reddit.com/r/elasticsearch | 2021-11-23

    Could you use something like this and run the query periodically then save the json file to storage, or pipe it back to your index with longer retention?

  • csv-sql

    Command-line tool to load csv and excel (xlsx) files and run sql commands

  • gsheet

    gsheet is a CLI tool (and Golang package) for piping csv data to and from Google Sheets

    Project mention: gsheet is a CLI tool (and Golang package) for piping csv data to and from Google Sheets | reddit.com/r/golang | 2021-08-23
  • csvdecoder

    Go library for parsing and deserialising CSV files into Go objects

  • quicktable

    Generate beautiful CLI tables on the fly, from CSV files.

    Project mention: Show HN: Generate beautiful CLI tables from CSV files | news.ycombinator.com | 2022-08-01
  • Customer-Billing-System

    This repository contains the code of a customer billing system in which a buyer can buy different things and see the shopping record also.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-08-06.

Go CSV related posts


What are some of the best open-source CSV projects in Go? This list will help you:

Project Stars
1 miller 5,645
2 gotenberg 3,880
3 octosql 3,880
4 dsq 2,602
5 trdsql 1,216
6 csvq 1,079
7 csvtk 744
8 csvutil 737
9 omniparser 482
10 sq 385
11 querycsv 100
12 go-csv-tag 95
13 re-txt 67
14 csvplus 67
15 nebula-importer 66
16 bafi 59
17 xyr 56
18 elastic-query-export 52
19 csv-sql 22
20 gsheet 19
21 csvdecoder 9
22 quicktable 0
23 Customer-Billing-System 0
Find remote jobs at our new job board 99remotejobs.com. There are 3 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives