# jszwec/csvutil

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

Repository: https://github.com/jszwec/csvutil
Canonical: https://ross.abutalabs.com/products/csvutil
Language: Go
License: MIT
License Family: permissive
Topics: golang, csv, fast, csv-parser, go, csvutil, marshal, gocsv, decoder, unmarshal, streaming, std-csv
Last push: 2025-03-15T18:21:52+00:00

## Health v2 (maintenance only)
Score: 28/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 11, release rhythm 8, longevity 100
- inputs: {"age_days": 3229, "days_push": 536, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1033, forks 69 (observed 2026-08-28T04:03:18.489516+00:00)

## What it is
csvutil is a Go library providing fast, idiomatic, dependency-free mapping between CSV data and Go struct values via struct tags. It wraps any csv Reader/Writer implementation (such as the standard library) and supports marshaling, unmarshaling, streaming, and nested structs.

## Use cases
- decode csv rows into go structs
- marshal go structs to csv
- stream large csv files into typed values
- map csv columns to struct fields with tags
- handle csv files without headers
- normalize csv data while decoding

## When to choose
- you need typed CSV binding in Go with struct tags
- you want streaming decode of large CSV files
- you want to swap in a faster CSV reader/writer behind the same API

## When to avoid
- you need a CSV parser itself - csvutil relies on an external reader/writer
- you work outside the Go ecosystem
- you need CSV features like type inference without predefined structs

## Facets
- artifact type: library
- maturity: stable
- function: serialization, parser, csv
- domain: files, developer-tools
- platform: go, cross-platform
- tags: csv-mapping, struct-tags, marshal, unmarshal, streaming-decoder, dependency-free, data-engineering

## Member repositories
- jszwec/csvutil (main) score 28

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:18.489516+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:06:40.527714+00:00, confidence not recorded.
  - readme: https://github.com/jszwec/csvutil (fetched 2026-08-28T04:03:18.489516+00:00, sha a70452cf32ed)
- Data as of 2026-08-30T08:39:29.467469+00:00.
