// the find
Toblerity/Fiona
Fiona reads and writes geographic data files
Fiona is a Python library for reading and writing geographic vector data files — shapefiles, GeoPackage, GeoJSON, and 80+ other formats via GDAL/OGR. It wraps GDAL's C API in a Pythonic streaming interface built on GeoJSON-style data classes. If you're doing GIS data pipeline work in Python without needing spatial analysis, this is the standard tool.
1. Streaming by default — reads features one at a time rather than loading entire datasets into memory, which matters when your shapefile is 5GB of census tracts. 2. The `fio` CLI is genuinely useful: `fio cat | jq` turns any vector format into a Unix pipeline, and `fio info` gives you CRS, schema, and feature count without writing a line of Python. 3. Supports reading from cloud storage (S3, GCS) and zip archives transparently via GDAL's virtual filesystem — the `zip+https://` in the README example is a real feature, not a toy. 4. The separation from Shapely is intentional and correct — Fiona handles I/O, you bring your own geometry library. That keeps the dependency surface honest.
1. Installation is a known pain point explicitly called out in their own README — the pip wheels omit many GDAL drivers, and if you need GML, FileGDB, or anything non-standard you're building from source or hoping conda-forge has what you need. 2. It's being superseded: the same maintainer (Sean Gillies) has been pushing PyOGRIO and the broader ecosystem is drifting toward GeoPandas + PyOGRIO for batch reads, which is 5-10x faster because it uses Arrow memory and avoids Python-level iteration. Fiona's streaming model, once a strength, is now a bottleneck for large datasets. 3. The Cython extension code means debugging C-level crashes gives you unhelpful stack traces — you'll see a GDAL error code and need to cross-reference GDAL docs to understand what went wrong. 4. Last meaningful activity was early 2025 and the issue tracker has open bugs sitting for years — it's in maintenance mode, not active development.