Skip to main content

Rust-powered MLT/MVT vector tile engine for Python

Project description

freestiler for Python

freestiler builds PMTiles vector tile archives from GeoPandas data, GeoParquet files, and DuckDB spatial queries using a Rust tiling engine.

Features:

  • MapLibre Tiles (mlt) and Mapbox Vector Tiles (mvt)
  • Multi-layer tilesets
  • Point clustering
  • Feature coalescing
  • Exponential feature dropping for low zoom levels

Why this package exists

  • Python-native API backed by the same Rust tiler as the R package
  • PMTiles output instead of tile directory trees
  • Direct DuckDB SQL tiling
  • Streaming point tiling for large DuckDB query results

Installation

Install from PyPI:

pip install freestiler

Published PyPI wheels ship the native feature set for Python 3.9 through 3.14:

  • GeoPandas input
  • Multi-layer tiling and feature management
  • Direct GeoParquet file input
  • DuckDB-backed file input
  • DuckDB SQL query support

If a wheel is not available for your platform, pip will build from source and requires a Rust toolchain.

Quick Start

import geopandas as gpd
from freestiler import freestile

gdf = gpd.read_file("counties.shp")

freestile(gdf, "counties.pmtiles", layer_name="counties")

That example is intentionally small. The more interesting path is tiling directly from DuckDB:

from freestiler import freestile_query

freestile_query(
    query="SELECT * FROM read_parquet('blocks.parquet') WHERE state = 'NC'",
    output="nc_blocks.pmtiles",
    layer_name="blocks",
)

For very large point tables, use streaming="always" and prefer tile_format="mvt" for maximum viewer compatibility.

Performance note:

  • freestile(gdf, ...) is convenient for GeoDataFrames that already fit comfortably in memory.
  • For larger datasets, freestile_file() and freestile_query() are usually faster because they avoid a heavier GeoPandas-to-Rust handoff.
  • If your GeoDataFrame still needs to_crs(4326) before tiling, that reprojection step can dominate startup time on large layers.

Source Builds

Published wheels include GeoParquet and DuckDB support by default. To build from a local checkout:

git clone https://github.com/walkerke/freestiler.git
cd freestiler/python
python3 -m venv .venv
source .venv/bin/activate
pip install maturin
python3 -m maturin develop --release

To build an installable wheel instead of using an editable install:

python3 -m maturin build --release --out dist
pip install dist/freestiler-*.whl

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freestiler-0.1.6.tar.gz (113.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

freestiler-0.1.6-cp314-cp314-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.14Windows x86-64

freestiler-0.1.6-cp314-cp314-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp314-cp314-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

freestiler-0.1.6-cp313-cp313-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.13Windows x86-64

freestiler-0.1.6-cp313-cp313-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp313-cp313-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

freestiler-0.1.6-cp312-cp312-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.12Windows x86-64

freestiler-0.1.6-cp312-cp312-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp312-cp312-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

freestiler-0.1.6-cp311-cp311-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.11Windows x86-64

freestiler-0.1.6-cp311-cp311-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp311-cp311-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

freestiler-0.1.6-cp310-cp310-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.10Windows x86-64

freestiler-0.1.6-cp310-cp310-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp310-cp310-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

freestiler-0.1.6-cp39-cp39-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.9Windows x86-64

freestiler-0.1.6-cp39-cp39-manylinux_2_28_x86_64.whl (18.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

freestiler-0.1.6-cp39-cp39-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file freestiler-0.1.6.tar.gz.

File metadata

  • Download URL: freestiler-0.1.6.tar.gz
  • Upload date:
  • Size: 113.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6.tar.gz
Algorithm Hash digest
SHA256 d308dd0f36568b7aa9dbc4891216df0f00fc8a65ddea3bb18ff9a74818b6d161
MD5 0e2d144b37e8c5bd9f224ff0740f6ef0
BLAKE2b-256 c2667034466863419d0146d19ab3283ad6050fb73756e7f4d97b278973872a51

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6.tar.gz:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2ea912c5419f2e4910d35887f85a98bdec9edbf439e3adca905f66418914f622
MD5 0e62597e91d5e1188d5204d8d78a2d36
BLAKE2b-256 743f6d7eb3a5f8a25a97e09d53d18ebe73409ab0f3f8551f1f77fa6b2e279830

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp314-cp314-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cdeebf2e410d10414ed024cda61952a9d3502a2c766daa531ff48021991cf73f
MD5 53b16f15a6a2aa309b3603e0e61b0ba2
BLAKE2b-256 b1c58cb66673094b0d087718beae254e08017de01c239f071a9107a0d87b2a4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84de14b5b5e419d6bf893da694c668a2a00d039f3305f8c1a62422a79efbfdd6
MD5 ac08a2130b194fb111dded6eca639b1c
BLAKE2b-256 6bf8e5aeb52a764a77a3f2e48ad59bd17cfa2bfc1992b7973238690bdd911d58

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 85d0cc485d08bb1663c73b13457805e80cb7a7f8e1a0f00824a5a0ede5d9852c
MD5 37a65803f4701dc2d9f969e562ab847a
BLAKE2b-256 d28b2d7720268b0dc7fcd375f2d05ac92f264a57e8b8c1498bfcbe39e2d4be53

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp313-cp313-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6b117f5e72327979d94832dec7cc8c677ed28757975a886af6a24091ea21997
MD5 b512ae49747c0719c490f701e86da412
BLAKE2b-256 fbfc828a7f7c2fc8e988748030484279450f2f4a4c685750c711e20f9d7c7efa

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20026b9ba4da36ba3e29d761058ceefe79fed5739414b5922b5ea4c17331913d
MD5 b706110c0c5fe3b2a18da064b7c459a9
BLAKE2b-256 f6f4e5a6e7ec54ba549cfaab18aed96529c596cfb6e114d8140e096d16d88770

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0ade68ec7f7d37de83c99cadff27d6dad08b7320eeb24f45a4c0b61b63fbf768
MD5 1b25e7b23abdd7487f9ffd7cde46015b
BLAKE2b-256 3e2d4c6af4a643cf3ed8766cba9df4401aa634f9e5da3323e18033987f25e298

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp312-cp312-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d47d49d15780ea33a2152ba60d21f0e6ef5763d46989b472a9e150a779d2aff3
MD5 74f31344ddb1035a6cb2babdc9986032
BLAKE2b-256 4a8babdcd3e1cd605a495126810ca9d08eff96504cd37f874cb4434d933e74e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2bb042356faa1178fd481d946f6223cccc4f25efcb5951b8ef7112130bbf724
MD5 cd44d732af3f5a5d92e193a3d67c4921
BLAKE2b-256 8bb6a7a9a12a2d82fdbff70d6bea83b8e39cdb3f1e7c53954e4fe09d24988ed9

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f01cda2586b5cb4bbf3fc57991b5a3996b469ceae6b76ed0c3d0dc32b30c467a
MD5 26054066d0e84342281e7417a44c66fa
BLAKE2b-256 da75e12c2fad851b18ff7310c0f81ac48ce996d11e994d018c88103056116d0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp311-cp311-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e9cbdbca4f10d4135f5d4623bbc4c8837b52e6e411fa0f7f8e2ff10023b83b1
MD5 3f8b7920dcbfd21e14a284f0c248febe
BLAKE2b-256 82276d6f80ff12e063fb9f8074b94aa82c75bebce9d0b855f59e020c16e779ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 211619317bd6c7a6bfb5e67c0602e507a2654169ccf0f47d239121a2f0e8beee
MD5 d694160ea0beda89a6f8d1192c4e970b
BLAKE2b-256 556e06a94dd22e110d144bc0fe3cf991dba423a7716c418a7b129d8aa0c80abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 02ca14497b439ab597d64971d70c4d629f170268fc7a3bed1b6881374fd25f80
MD5 67a834a85cef714821ee52ebc3580f76
BLAKE2b-256 636a5427ecb06e3ed97baaf7246f3830e7c6ffee2753a1b38bf9c3ede6831d22

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp310-cp310-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bbee31ef0148541a26da7946933eba5d0bd6633765cb9216e399b7114c5fb861
MD5 f07946df8db9e133923b13d88900aa5f
BLAKE2b-256 d7584408eaabdade83da4a0f3f6c11ce7c0d26c5a381b5e5166a5f7d9209834a

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3299e646be5d206026b0fbe0d25be64d43de0d8cfed16e31e0270000577e9f5b
MD5 25eb3554665b6d84ac096716989eb020
BLAKE2b-256 bcb9c0955b962340268924f6213b1517a7188191f646eb1888f0913d65529bb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 13.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freestiler-0.1.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 56b6e81ac11af1277ed5647ea50285666f9b03a6cb34727c52ac2edb9762cfda
MD5 fbb39ea5c89462aabc43e0d3c4790f11
BLAKE2b-256 d07f155f12a9837c76041595535492359221898979aca12a395032cfb4668215

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp39-cp39-win_amd64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 017982991a6e9115840cdf5923a1f008c38576ef1d4b2e4ba82f7cdaf416bc22
MD5 823bc0a43307dca7b84bd100a760d53e
BLAKE2b-256 f5316075ed9bdc585322a25f03c2ee2203c638f3f826d4425df0bb3b3b31ad5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp39-cp39-manylinux_2_28_x86_64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freestiler-0.1.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e856dbc7a0ae6f2f7b29f41c4e615e0700ba14e30fc3fb70159a054b254fcb6
MD5 2a6219bcc20327229701caffe3277429
BLAKE2b-256 d782f8a4899a6a12007340fb08d3612d74be8a11e23fea1d5d3aefc2b8204009

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.6-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: python-package.yml on walkerke/freestiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page