Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. OpenStreetMap
  3. QuackOSM

QuackOSM

Apache-2.0Python0.17.1

An open-source Python and CLI tool for reading OpenStreetMap PBF files using DuckDB and exporting to GeoParquet.

Visit WebsiteGitHubGitHub
365 stars18 forks0 contributors

What is QuackOSM?

QuackOSM is an open-source Python library and command-line tool designed to read and process OpenStreetMap Protocol Buffer (PBF) files efficiently. It uses DuckDB with its Spatial extension to parse OSM data, enabling fast filtering, conversion to GeoParquet format, and direct export to DuckDB databases. It solves the problem of slow, single-threaded OSM data processing by leveraging DuckDB's multithreading and spatial capabilities.

Target Audience

Geospatial developers, data engineers, and researchers who work with OpenStreetMap data and need to perform large-scale extractions, filtering, or conversions into analytical formats like GeoParquet.

Value Proposition

Developers choose QuackOSM for its performance advantages over traditional tools like GDAL, its seamless integration with DuckDB for spatial queries, and its ability to automatically fetch and filter OSM data without manual preprocessing.

Overview

QuackOSM: an open-source Python and CLI tool for reading OpenStreetMap PBF files using DuckDB

Use Cases

Best For

  • Converting large OSM PBF files to GeoParquet for cloud analytics
  • Filtering OpenStreetMap data by tags and geometry in a single step
  • Automating OSM data downloads for specific regions or cities
  • Integrating OSM data into DuckDB workflows for spatial analysis
  • Building ETL pipelines for geospatial applications using Python
  • Replacing GDAL for faster, multithreaded OSM data processing

Not Ideal For

  • Environments with strict disk space limitations, as QuackOSM requires ~10x free disk space relative to PBF file size for intermediate processing.
  • Real-time applications needing immediate OSM data access without caching or file I/O latency.
  • Projects solely requiring simple OSM data extraction without DuckDB or GeoParquet integration, where lighter tools like Osmium suffice.
  • Teams operating in Python <3.10 environments, since QuackOSM mandates Python 3.10 or higher.

Pros & Cons

Pros

Multithreaded Performance Boost

Utilizes DuckDB's Spatial extension for parallel PBF reading, explicitly benchmarking faster than single-threaded GDAL, as stated in the README.

Automatic Data Fetching

Can download OSM PBF files automatically for geometries or text queries from sources like Geofabrik, eliminating manual data acquisition steps.

GeoParquet Cloud Integration

Exports directly to GeoParquet format, facilitating seamless use in modern data lakes and analytics stacks like DuckDB or PySpark.

Flexible Filtering Workflow

Supports combined geometry and tag-based filtering in one step, including negations and wildcards, without pre-clipping with ogr2ogr.

Cons

Heavy Resource Footprint

Demands substantial disk space (10x PBF file size) and memory for intermediate files, as documented in the 'Memory usage' section, limiting use on constrained systems.

Complex Dependency Chain

Relies on numerous Python packages (e.g., DuckDB with Spatial, geoarrow-pyarrow, geopandas) and specific versions, increasing installation friction and potential conflicts.

Caching Overhead for Dynamic Data

The intelligent caching system, while reducing repeat computations, adds complexity and storage overhead for frequently changing OSM data or ad-hoc queries.

Frequently Asked Questions

Quick Stats

Stars365
Forks18
Contributors0
Open Issues26
Last commit2 days ago
CreatedSince 2023

Tags

#geospatial#python-cli#gis#duckdb#python#geoparquet#osm#openstreetmap#data-processing#spatial-analysis#geo#etl

Built With

s
shapely
P
PyArrow
R
Rich
G
GeoPandas
P
Python

Links & Resources

Website

Included in

OpenStreetMap911
Auto-fetched 1 day ago

Related Projects

osmnxosmnx

Download, model, analyze, and visualize street networks and other geospatial features from OpenStreetMap.

Stars5,683
Forks867
Last commit11 days ago
prettymappprettymapp

🖼️ Create beautiful maps from OpenStreetMap data in a streamlit webapp

Stars2,768
Forks446
Last commit5 months ago
overpass-wrapperoverpass-wrapper

Python bindings for the OpenStreetMap Overpass API

Stars400
Forks93
Last commit4 months ago
osmapiosmapi

Python wrapper for the OpenStreetMap API

Stars228
Forks44
Last commit1 month ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub