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:

  • 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.

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.4.tar.gz (112.1 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.4-cp312-cp312-win_amd64.whl (13.5 MB view details)

Uploaded CPython 3.12Windows x86-64

freestiler-0.1.4-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.4-cp312-cp312-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

freestiler-0.1.4-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.4-cp311-cp311-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

freestiler-0.1.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (14.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

freestiler-0.1.4-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.4-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.4.tar.gz.

File metadata

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

File hashes

Hashes for freestiler-0.1.4.tar.gz
Algorithm Hash digest
SHA256 528c4b2a8a946f73b6767d6e899487c31e20aef232569004475e3bf0690704d8
MD5 22248c9538fdbdb8a3cd03134dd129eb
BLAKE2b-256 6de1716533d0a68c35a3178ad70af8effd3a37b4875a5b3b042fa7a5d9336f6a

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4.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.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.4-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.7

File hashes

Hashes for freestiler-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 46038ccc898c37f656ae4da852c82f42f431174d25c2631741c5399b48168436
MD5 5eae5bb9829bda62b2222dd56db7c2af
BLAKE2b-256 c2c4fdfd7afd6a930b35b92cc49d56871811b5e47e075018d377818f8cdf3f21

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0b69b452f5a66afd2b203ba6892a67af6255d6fac2d109e7c5eadb433b7ddd6
MD5 c943a363f66f72f9f036cc7d3a2f427c
BLAKE2b-256 3a7002433866adb68c96423cf81f25ab7048ac40baa3f3ab4200ae9d77345f0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 47661ba129286e0b3e99bbe1c0a46982075910be645caa5dca22304a522e45a9
MD5 2e65e31d4fac9f423160fa4cc82569d2
BLAKE2b-256 9dd63cb8c3225baf67287fcb90ab87133df04d09d7cd7ebc03c9310de4e11b9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.4-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.7

File hashes

Hashes for freestiler-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 093447bc4da301c0bea55aade89fdaea92237f3e5c0f3cf3f62e80b2f9c2ceed
MD5 862317e0a815fb4cfeaa89ad856f5d98
BLAKE2b-256 7b048f386054f03011143fc3223f2d1fe301a4a8f3dd0bfbab7044b20d7da407

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e13584e411b4802593374b552bea879e4c38c9fa4fdab355cbecc0299be2f88
MD5 2c7909cd9ff817f76b8114d278689370
BLAKE2b-256 fdf370e99558907f910b1a3a4b797abf35040d0e418e0f527a9e50a2d10abe40

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4dee68ff35af30b03f392b6489d3392d682b055b78f5b0232d2ae14cc58707fd
MD5 e6f043e69068155883a9f5e39767f281
BLAKE2b-256 461b23e02acf4376f5206b4e2654b35e60ddcbb6ed677214b280c97949c33ed3

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.4-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.7

File hashes

Hashes for freestiler-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4b5f460d22fcc23b1d2d83ce2fe979109f034aaed691b56076b1ce42cf5c4df2
MD5 0e583616f90f1076bf5e13452ddb7a1b
BLAKE2b-256 61b31bcdc80547a58454658171e525430aad3b707b1ea593109e2131a926a028

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27431332dc310ccdb4966af8fdd93487e35e40a344e03b099891b24e82347f32
MD5 0790572c8c6b00df9f359c4874554b98
BLAKE2b-256 a99a5eed02d7946b0ce8202fd026869abcce344a82505246b0366982e611f3c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 651db885983ac4bafcb0a3e027dd590fbbaad448fecfe8c94399fc701f8328d9
MD5 d7f983048bf243297b19647048941e0e
BLAKE2b-256 78c4b8b7c9d6f055a0d11993fb3c97f6849a9d15997fe25d89f12fd18488b391

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: freestiler-0.1.4-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.7

File hashes

Hashes for freestiler-0.1.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ce64d03f264d3901fbc072e87bd1b319b53106d92c3cbcc70da2e5f8099a5068
MD5 3847bacfca71dbd080d1790c0fd7fd0f
BLAKE2b-256 da9dcfe8040f4a4148704826edd4cd7dc1bd8036446a1ee82fb47512622dd830

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7685dbbcc0502ec475dfe27dfef2383c33d41600719693c6df1cd729ed943e92
MD5 9abefd713f9272d159ff0df5f2a96291
BLAKE2b-256 263a0d24bcf0e7e6aae3f5f52dffac25d7f2b6be3b17ad20dbddac1a709ff0e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for freestiler-0.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83aae6f21f19637ee89375aea8a5117e682b68e5889ca1892bf677730017c42c
MD5 58e91a5642be9c003da68a55f9cb923b
BLAKE2b-256 d769b85fb5eea3a6ebf079d249176a961866b21d89db20a4a829d254b2998354

See more details on using hashes here.

Provenance

The following attestation bundles were made for freestiler-0.1.4-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