Skip to main content

High-performance streaming converter between WKT and WKB geometry formats

Project description

wkb_wkt_converter

A high-performance, zero-dependency Rust library for streaming conversion between WKT/EWKT and WKB/EWKB geometry formats used in GIS systems (PostGIS, GDAL, etc.).

Exposes both a Rust API and Python bindings (via PyO3/maturin).


Features

  • All 7 OGC geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, GeometryCollection
  • All coordinate dimensions: XY, XYZ, M, ZM
  • Both EWKB (PostGIS flag-bit encoding) and ISO WKB (type+1000 offset encoding) as input
  • SRID preservation (EWKT ↔ EWKB); option to split SRID from geometry
  • Big-endian and little-endian WKB input; little-endian EWKB output
  • EMPTY geometry support
  • Per-member EMPTY support inside MULTI* geometries
  • Hex WKB convenience helpers
  • Memory-safe handling for malformed input: structurally invalid input returns descriptive errors, while trusted-valid fast paths may pass through malformed geometry bodies as invalid output bytes/text.

Conversion strategy

WKB → WKT is a straightforward streaming read. WKT → WKB uses a seekable-buffer approach: count fields (ring count, point count, etc.) are written as 0 placeholders and patched in-place after the coordinates are streamed, avoiding a two-pass scan of the input.


Rust API

Add to Cargo.toml:

[dependencies]
wkb_wkt_converter = { path = "wkb_wkt_converter" }

Functions

// WKB/EWKB → WKT/EWKT, with SRID output control
pub fn wkb_to_wkt(wkb: &[u8], srid: SridMode) -> Result<String>

// WKB/EWKB → WKT, SRID returned separately (not in the string)
pub fn wkb_to_wkt_split_srid(wkb: &[u8]) -> Result<(String, Option<u32>)>

// WKT/EWKT → EWKB bytes, with SRID output control
pub fn wkt_to_wkb(wkt: &str, srid: SridMode) -> Result<Vec<u8>>

// WKT/EWKT → EWKB bytes, SRID returned separately (not in bytes)
pub fn wkt_to_wkb_split_srid(wkt: &str) -> Result<(Vec<u8>, Option<u32>)>

// WKT/EWKT → uppercase hex-encoded EWKB string, with SRID output control
pub fn wkt_to_hex_wkb(wkt: &str, srid: SridMode) -> Result<String>

// Hex-encoded WKB/EWKB → WKT/EWKT string, with SRID output control
pub fn hex_wkb_to_wkt(hex: &str, srid: SridMode) -> Result<String>

Generic converters

These functions accept an explicit Input: a WKT/EWKT string, a hex-encoded WKB/EWKB string, or raw WKB/EWKB bytes. Text input is detected automatically (a non-empty, even-length string composed entirely of hex characters is treated as hex WKB; anything else, including odd-length all-hex text, is treated as WKT). Input::Wkb is always treated as raw WKB/EWKB, not encoded text.

pub enum Input<'a> {
    Text(&'a str),
    Wkb(&'a [u8]),
}

pub fn to_wkb(input: Input<'_>, srid: SridMode) -> Result<Vec<u8>>
pub fn to_wkt(input: Input<'_>, srid: SridMode, normalize_wkt: bool) -> Result<String>
pub fn to_hex_wkb(input: Input<'_>, srid: SridMode) -> Result<String>

SridMode controls SRID handling in the output of direct and generic converters:

Variant Behaviour
SridMode::Auto Mirror the input — SRID kept if present, absent if not
SridMode::Strip Always strip the SRID from the output
SridMode::Set(n) Always embed SRID n, overriding whatever the input contains

Validation notes:

  • WKT coordinates must be finite. WKB coordinate payloads are treated as trusted-valid: all-NaN Point remains POINT EMPTY, while other NaN or infinity values may format as invalid WKT instead of raising an error.
  • Direct WKB-to-WKT entry points still reject structurally invalid WKB such as truncation, unsupported type codes, excessive nesting, and trailing top-level bytes.
  • For canonical little-endian Point, LineString, and Polygon EWKB hex or raw WKB input, to_wkb(input, SridMode::Strip | SridMode::Set(_)) and the equivalent to_hex_wkb paths patch only the top-level header. Malformed coordinate bodies or trailing bytes in those simple fast paths can pass through as invalid output. Big-endian, ISO-dimensional, collection, and non-canonical type headers fall back to a full normalising round-trip.
  • to_wkb(Input::Text(hex), SridMode::Auto) returns decoded bytes without WKB structure validation, and to_hex_wkb(Input::Text(hex), SridMode::Auto) validates and uppercases the hex text only. Input::Wkb under SridMode::Auto is copied or hex-encoded without WKB structure validation.
  • GeometryCollection dimension tags are not inherited by child geometries. An XY collection may contain heterogeneous immediate children. A Z, M, or ZM collection requires each immediate child to declare the same dimension.
  • WKT and WKB parsing reject geometry nesting beyond the implementation depth limit of 128.

to_wkt accepts a normalize_wkt: bool parameter. When true, WKT input is normalised (canonical casing, spacing, coordinate formatting) via a round-trip through WKB. When false, only the SRID prefix is adjusted — no validation is performed: malformed WKT is returned without error. Leading/trailing whitespace is always trimmed regardless of this flag. Hex WKB and raw WKB input are always decoded to normalised WKT regardless of this flag. Odd-length all-hex input is not detected as hex WKB; with normalize_wkt=false it follows the same unvalidated WKT fast path.

Example

use wkb_wkt_converter::{wkt_to_wkb, wkb_to_wkt, wkt_to_wkb_split_srid, hex_wkb_to_wkt};
use wkb_wkt_converter::{to_wkt, to_hex_wkb, Input, SridMode};

// Basic round-trip
let wkb = wkt_to_wkb("POINT (1 2)", SridMode::Auto)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "POINT (1 2)");

// With SRID embedded
let wkb = wkt_to_wkb("SRID=4326;POINT Z (1 2 3)", SridMode::Auto)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "SRID=4326;POINT Z (1 2 3)");

// SRID split from geometry
let (wkb, srid) = wkt_to_wkb_split_srid("SRID=4326;LINESTRING (0 0, 1 1)")?;
assert_eq!(srid, Some(4326));
// wkb contains a plain (non-EWKB) LineString

// All geometry types and dimensions work the same way
let wkb = wkt_to_wkb(
    "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))",
    SridMode::Auto,
)?;
let wkt = wkb_to_wkt(&wkb, SridMode::Auto)?;
assert_eq!(wkt, "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))");

// Generic converters: input format (WKT, hex WKB, or raw WKB) selected explicitly/detected automatically
// Normalise WKT (casing, whitespace) — SridMode::Auto mirrors the input SRID
let wkt = to_wkt(Input::Text("point(1 2)"), SridMode::Auto, true)?;
assert_eq!(wkt, "POINT (1 2)");

// Add or override an SRID regardless of what the input contains
let hex = to_hex_wkb(Input::Text("POINT (1 2)"), SridMode::Set(4326))?;
// hex is an EWKB string encoding SRID=4326;POINT (1 2)
let wkt = hex_wkb_to_wkt(&hex, SridMode::Strip)?;
assert_eq!(wkt, "POINT (1 2)");

// Raw WKB bytes can also go through the generic converters
let wkt = to_wkt(Input::Wkb(&wkb), SridMode::Auto, false)?;
assert_eq!(wkt, "MULTIPOLYGON ZM (((0 0 0 1, 1 0 0 1, 1 1 0 1, 0 0 0 1)))");

// Strip the SRID without re-encoding (fast path)
let wkt = to_wkt(Input::Text("SRID=4326;POINT (1 2)"), SridMode::Strip, false)?;
assert_eq!(wkt, "POINT (1 2)");

Error handling

All functions return Result<_, wkb_wkt_converter::Error>:

pub enum Error {
    InvalidWkt(String),
    InvalidWkb(String),
    UnsupportedGeometryType(u32),
}

Python API

Build and install

Requires Python 3.10 or newer, maturin, and a Rust toolchain. Wheels include PEP 561 type stubs for static type checkers and IDEs.

pip install maturin
maturin develop          # install into the current virtualenv (dev mode)
maturin build --release  # build a wheel

Functions

from wkb_wkt_converter import (
    wkb_to_wkt,
    wkb_to_wkt_split_srid,
    wkt_to_wkb,
    wkt_to_wkb_split_srid,
    wkt_to_hex_wkb,
    hex_wkb_to_wkt,
    # generic converters
    to_wkb,
    to_wkt,
    to_hex_wkb,
)
Function Input Output
wkb_to_wkt(wkb, srid=None) bytes-like WKB/EWKB str
wkb_to_wkt_split_srid(wkb) bytes-like WKB/EWKB (str, int | None)
wkt_to_wkb(wkt, srid=None) str bytes
wkt_to_wkb_split_srid(wkt) str (bytes, int | None)
wkt_to_hex_wkb(wkt, srid=None) str str
hex_wkb_to_wkt(hex_wkb, srid=None) str str

WKB arguments in the Python API accept bytes, bytearray, memoryview, and other C-contiguous one-byte buffer objects. They are always treated as raw WKB/EWKB, not as encoded text.

For performance, bytes-like WKB inputs may be borrowed directly without copying. Do not mutate a writable buffer while a converter is reading it, including from native code, another thread, or shared memory. Mutating the buffer during conversion is unsupported and may produce invalid or inconsistent results.

All functions above raise ValueError on invalid geometry input. The bytes-like WKB functions raise BufferError when the Python object does not provide a C-contiguous one-byte buffer. (See to_wkt below for an exception when normalize_wkt=False.)

Generic converters

These three functions accept a WKT/EWKT string, a hex-encoded WKB/EWKB string, or bytes-like WKB/EWKB input. String input is detected automatically: a non-empty, even-length string composed entirely of hex characters is treated as hex WKB; anything else, including odd-length all-hex text, is treated as WKT. Bytes-like input is always treated as raw WKB/EWKB, not encoded text.

Function Output
to_wkb(source, srid=None) bytes
to_wkt(source, srid=None, normalize_wkt=False) str
to_hex_wkb(source, srid=None) str

The srid keyword argument on direct and generic converters controls SRID handling in the output:

Value Behaviour
None (default) Mirror the input — SRID kept if present, absent if not
False Always strip the SRID from the output
int Always embed this SRID, overriding whatever the input contains

Validation behavior matches the Rust API: WKT coordinates must be finite, while WKB coordinate payloads are treated as trusted-valid. Simple little-endian EWKB hex or bytes-like inputs under srid=False or an integer SRID are patched at the top-level header without scanning the body, so malformed bodies or trailing bytes can pass through as invalid output. to_wkb(source, srid=None) returns decoded/raw bytes without WKB structure validation, and to_hex_wkb(source, srid=None) validates and uppercases hex text or hex-encodes bytes-like input without WKB structure validation.

to_wkt accepts a normalize_wkt keyword argument (default False). When True, WKT input is normalised (canonical casing, spacing, coordinate formatting) via a round-trip through WKB. When False (the default), only the SRID prefix is adjusted — no validation is performed: malformed WKT is returned without raising an error. Leading/trailing whitespace is always stripped regardless of this flag. Hex WKB and bytes-like WKB input are always decoded to normalised WKT regardless of this flag. Odd-length all-hex input is not detected as hex WKB; with normalize_wkt=False it follows the same unvalidated WKT fast path.

Example

from wkb_wkt_converter import wkt_to_wkb, wkb_to_wkt, wkt_to_hex_wkb, hex_wkb_to_wkt
from wkb_wkt_converter import to_wkt, to_hex_wkb

wkb = wkt_to_wkb("POINT (1 2)")
wkt = wkb_to_wkt(wkb)
assert wkt == "POINT (1 2)"

# EWKT with SRID
wkb = wkt_to_wkb("SRID=4326;POLYGON ((0 0, 1 0, 1 1, 0 0))")
wkt = wkb_to_wkt(wkb)
assert wkt == "SRID=4326;POLYGON ((0 0, 1 0, 1 1, 0 0))"

# Hex WKB (common PostGIS text format)
hex_wkb = wkt_to_hex_wkb("POINT (1 2)")
wkt = hex_wkb_to_wkt(hex_wkb)
assert wkt == "POINT (1 2)"

srid_hex_wkb = wkt_to_hex_wkb("SRID=4326;POINT (1 2)")
wkt = hex_wkb_to_wkt(srid_hex_wkb, srid=False)
assert wkt == "POINT (1 2)"

# Generic converters: input format detected automatically
wkt = to_wkt("point(1 2)", normalize_wkt=True)  # normalise WKT
assert wkt == "POINT (1 2)"

wkt = to_wkt(hex_wkb)                           # hex WKB -> WKT (always normalised)
assert wkt == "POINT (1 2)"

wkt = to_wkt(wkb)                               # raw WKB bytes -> WKT
assert wkt == "POINT (1 2)"

hex_out = to_hex_wkb("POINT (1 2)", srid=4326)  # add SRID
wkt = to_wkt(hex_out)
assert wkt == "SRID=4326;POINT (1 2)"

wkt = to_wkt("SRID=4326;POINT (1 2)", srid=False)  # strip SRID (fast path)
assert wkt == "POINT (1 2)"

Benchmarks

Comparison against shapely 2.x. Regenerate with:

pip install ".[benchmark]"
python scripts/update_readme_benchmarks.py
# or, using an already-saved JSON:
python scripts/update_readme_benchmarks.py --json benchmark_results.json

For local performance history across commits, use airspeed velocity:

pip install ".[asv]"
asv check --python=same
asv run --python=same --quick --show-stderr --dry-run
asv run HEAD^! --quick --show-stderr --dry-run
asv run main..HEAD --skip-existing-commits --show-stderr
asv run ALL --skip-existing-commits --show-stderr
asv publish
asv preview
asv compare main HEAD --split

2026-05-05 — Python 3.12.3 — 12th Gen Intel(R) Core(TM) i7-12700KF

Times are mean latency per call (lower is better). Speedup = shapely mean ÷ wkb_wkt_converter mean.

Basic conversions

wkt_to_wkb

Geometry wkb_wkt_converter shapely Speedup
Point 140 ns 5.2 µs 37.3×
LineString (5 pts) 233 ns 6.2 µs 26.7×
Polygon (5 pts) 247 ns 6.2 µs 25.2×
GeometryCollection 387 ns 8.3 µs 21.5×
MultiPolygon 533 ns 9.9 µs 18.6×
LineString (1000 pts) 23.3 µs 209.1 µs 9.0×
Polygon (1000 pts) 40.7 µs 444.0 µs 10.9×

wkb_to_wkt

Geometry wkb_wkt_converter shapely Speedup
Point 148 ns 3.9 µs 26.3×
LineString (5 pts) 240 ns 4.4 µs 18.3×
Polygon (5 pts) 140 ns 4.4 µs 31.2×
GeometryCollection 213 ns 5.1 µs 24.0×
MultiPolygon 667 ns 6.9 µs 10.3×
LineString (1000 pts) 38.9 µs 118.2 µs 3.0×
Polygon (1000 pts) 118.3 µs 140.8 µs 1.2×

wkt_to_hex_wkb

Geometry wkb_wkt_converter shapely Speedup
Point 164 ns 5.2 µs 31.6×
LineString (5 pts) 337 ns 6.4 µs 19.0×
Polygon (5 pts) 365 ns 6.4 µs 17.6×
GeometryCollection 494 ns 8.7 µs 17.5×
MultiPolygon 847 ns 9.8 µs 11.6×
LineString (1000 pts) 36.8 µs 230.0 µs 6.2×
Polygon (1000 pts) 54.5 µs 456.0 µs 8.4×

hex_wkb_to_wkt

Geometry wkb_wkt_converter shapely Speedup
Point 188 ns 4.0 µs 21.3×
LineString (5 pts) 331 ns 4.6 µs 13.9×
Polygon (5 pts) 219 ns 4.6 µs 21.1×
GeometryCollection 352 ns 5.6 µs 15.8×
MultiPolygon 854 ns 6.8 µs 8.0×
LineString (1000 pts) 47.2 µs 133.3 µs 2.8×
Polygon (1000 pts) 126.7 µs 156.0 µs 1.2×

Generic to_* converters

to_wkb(wkt)

Geometry wkb_wkt_converter shapely Speedup
Point 146 ns 5.4 µs 36.8×
LineString (5 pts) 241 ns 6.7 µs 27.7×
Polygon (5 pts) 273 ns 6.5 µs 23.9×
GeometryCollection 391 ns 8.5 µs 21.6×
MultiPolygon 565 ns 9.6 µs 17.0×
LineString (1000 pts) 24.0 µs 215.0 µs 9.0×
Polygon (1000 pts) 41.2 µs 452.8 µs 11.0×

to_wkb(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 79 ns 4.5 µs 57.4×
LineString (5 pts) 116 ns 4.8 µs 41.6×
Polygon (5 pts) 117 ns 4.7 µs 40.4×
GeometryCollection 160 ns 5.3 µs 33.2×
MultiPolygon 215 ns 5.9 µs 27.7×
LineString (1000 pts) 7.2 µs 42.8 µs 5.9×
Polygon (1000 pts) 7.2 µs 43.3 µs 6.0×

to_wkt(wkt)normalize_wkt=False (fast path, no WKB round-trip)

Geometry wkb_wkt_converter shapely Speedup
Point 62 ns 4.8 µs 76.8×
LineString (5 pts) 60 ns 6.1 µs 101.3×
Polygon (5 pts) 61 ns 6.1 µs 100.2×
GeometryCollection 65 ns 8.4 µs 129.9×
MultiPolygon 66 ns 10.6 µs 160.0×
LineString (1000 pts) 521 ns 306.5 µs 588.0×
Polygon (1000 pts) 2.1 µs 547.8 µs 267.2×

to_wkt(wkt)normalize_wkt=True (full WKT→WKB→WKT round-trip)

Geometry wkb_wkt_converter shapely Speedup
Point 346 ns 4.8 µs 13.8×
LineString (5 pts) 550 ns 6.1 µs 11.1×
Polygon (5 pts) 458 ns 6.1 µs 13.3×
GeometryCollection 685 ns 8.4 µs 12.3×
MultiPolygon 1.3 µs 10.6 µs 8.1×
LineString (1000 pts) 62.9 µs 306.5 µs 4.9×
Polygon (1000 pts) 162.3 µs 547.8 µs 3.4×

to_wkt(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 195 ns 4.1 µs 21.1×
LineString (5 pts) 349 ns 4.6 µs 13.2×
Polygon (5 pts) 231 ns 4.7 µs 20.1×
GeometryCollection 359 ns 5.5 µs 15.4×
MultiPolygon 873 ns 6.7 µs 7.7×
LineString (1000 pts) 46.8 µs 132.5 µs 2.8×
Polygon (1000 pts) 126.9 µs 155.2 µs 1.2×

to_hex_wkb(wkt)

Geometry wkb_wkt_converter shapely Speedup
Point 177 ns 5.4 µs 30.4×
LineString (5 pts) 350 ns 6.4 µs 18.3×
Polygon (5 pts) 375 ns 6.8 µs 18.3×
GeometryCollection 524 ns 8.7 µs 16.6×
MultiPolygon 869 ns 9.8 µs 11.3×
LineString (1000 pts) 37.3 µs 228.1 µs 6.1×
Polygon (1000 pts) 54.7 µs 463.0 µs 8.5×

to_hex_wkb(hex_wkb)

Geometry wkb_wkt_converter shapely Speedup
Point 86 ns 4.5 µs 52.6×
LineString (5 pts) 169 ns 4.9 µs 29.1×
Polygon (5 pts) 174 ns 4.9 µs 28.5×
GeometryCollection 238 ns 5.5 µs 23.0×
MultiPolygon 366 ns 6.2 µs 17.0×
LineString (1000 pts) 14.8 µs 56.7 µs 3.8×
Polygon (1000 pts) 15.1 µs 58.1 µs 3.8×

Project layout

wkb_wkt_converter/          # core Rust library (zero runtime dependencies)
  src/
    lib.rs                  # public API
    error.rs
    types.rs                # GeomType, Dimension
    wkb_to_wkt/             # WKB reader + WKT builder
    wkt_to_wkb/             # WKT tokenizer + seekable WKB writer
  tests/
    wkb_to_wkt.rs
    wkt_to_wkb.rs
    generic_converters.rs

wkb_wkt_converter_py/       # Python bindings (PyO3 / maturin)
  src/lib.rs

pyproject.toml              # maturin build config

Running tests

cargo test                  # run all Rust tests
cargo clippy -- -D warnings # lints
cargo fmt --check           # formatting

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

wkb_wkt_converter-0.5.0.tar.gz (36.0 kB view details)

Uploaded Source

Built Distributions

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

wkb_wkt_converter-0.5.0-cp314-cp314-win_amd64.whl (169.0 kB view details)

Uploaded CPython 3.14Windows x86-64

wkb_wkt_converter-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (270.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (245.4 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

wkb_wkt_converter-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl (250.6 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

wkb_wkt_converter-0.5.0-cp313-cp313-win_amd64.whl (169.0 kB view details)

Uploaded CPython 3.13Windows x86-64

wkb_wkt_converter-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (269.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (245.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

wkb_wkt_converter-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl (250.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

wkb_wkt_converter-0.5.0-cp312-cp312-win_amd64.whl (169.2 kB view details)

Uploaded CPython 3.12Windows x86-64

wkb_wkt_converter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (270.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (245.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

wkb_wkt_converter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl (251.0 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

wkb_wkt_converter-0.5.0-cp311-cp311-win_amd64.whl (171.2 kB view details)

Uploaded CPython 3.11Windows x86-64

wkb_wkt_converter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (272.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (247.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

wkb_wkt_converter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl (252.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

wkb_wkt_converter-0.5.0-cp310-cp310-win_amd64.whl (171.0 kB view details)

Uploaded CPython 3.10Windows x86-64

wkb_wkt_converter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (272.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (247.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

wkb_wkt_converter-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl (252.2 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file wkb_wkt_converter-0.5.0.tar.gz.

File metadata

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

File hashes

Hashes for wkb_wkt_converter-0.5.0.tar.gz
Algorithm Hash digest
SHA256 3da2cb063e93380bfac019807aa7c389f1deed1a85612bb6cbe66f5a44333a40
MD5 7e71d1d622108f0b30ef8ee1ba2d0ca8
BLAKE2b-256 c5476489ebb5ae9c35d8eeb68b0647b9ea18e86f1c73e45b20322a22e8e4c78f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0.tar.gz:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 270c418747e91e0bf9144497f75aeeaf42c8224f323e88448a7f1e5d4e41f5b2
MD5 7d45d53a3bdacf47d7d095948c80e3a0
BLAKE2b-256 fdde3187b8d933b02548ed8d79cd1869f10a16ba0feef9abd96785d11b7236bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 885663be154d0f6f03c34583528e5d8caef4142178e9a5647bed02c5043cad9a
MD5 04cad685af7b4bdc8d60e13d75774e6b
BLAKE2b-256 0fc364b6b1a53c31e1a0841be796095df428e36658744db62c23e342b3a39560

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c2cee54604f5cffc415c9051e8a0ea46c72390c6a4054191c7ebd6a8240b8b6
MD5 161821e329589eeba066508b62d93c67
BLAKE2b-256 281e65eb4f41c92466096ba0777da21f86717108c2afd2d466fa271cea4f63fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f3b2cc25118c0004b9481440ef0c18074419e6e3c4c916060fda102cd160fb6f
MD5 98460e672980fa7297a6e493e09b6ae4
BLAKE2b-256 545bcd22dddb1f2e8bb50fa4c0159444c5dab69259c730653a7ca3091cb3e130

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9e1f0038c032d0092b6182d9526f6dd5928c2ea4a15f3dfb757bea28c47a7aa6
MD5 ee3f455a36c9cb5e8c4a8d3d5a4bdc60
BLAKE2b-256 86450535e6d82e2284f48e95106f08a795e594f94440f795a7131d12f5136bb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9eb228487725092ed3d8d2466b8c82597f54861e0b4c4c3c647cf53ef6035a71
MD5 82c3b6b479ed5c5396331a79dbdcd2cf
BLAKE2b-256 246c2cd706567248304039f2543ed7275ae6de9199bcf276cb672f8596631cc9

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbdcbb87afa38aca09b7bcb4b44c3429ac1ba9548be2a2ca79dd487ce2b8554c
MD5 ef5f70f438620159be1f65b74cd5cfe2
BLAKE2b-256 adccfd114ecd24e0ae345f82d2fe26391174ed972ad059b6f0e0edff18a9f6a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2c161861f9297497eda10394b8a7bb11157d6ed05c1c47c7012cc447d814bd7a
MD5 d9e7a5417a23474e59e67316051eb871
BLAKE2b-256 b65f79912c2388bfc31264b20cefac2a1e6e2a928d80fe9bcfb588c34585484a

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 825a5efa64677bccf688bae98ec4ff16bd8a3919202582f0ebc1e2d5a5ba7564
MD5 ca295137ce815b1dc4a4008da53fb22a
BLAKE2b-256 ceb52c8cec3b9287f95fb49f1570a494ef70599f5d652b0700113e90add3f6f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c08ce5ab79296c7104879b4b86b19e4848498d94918363e0ac90ff1556a38f8
MD5 1eb59adafcfc5debc7c5616bc206e100
BLAKE2b-256 f60e7dbbbd9e0a3ee1a27d2dd5e2fe92f03e9df725ff8072b855b4ef4c39435c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d8c6f0a818c636d29fa54f23ec0ae27933fdefbba01c4ebaaaec24a515150e3
MD5 42a36bf69646782956272a150bd7b27a
BLAKE2b-256 18b956b58ffbe86c239200a4a791f9025f029d60d98619349ec9bebe813bfcaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d4ece063f8fb8e9c66d0a73a2c473e17120d3786bae485191a395d8ceb690cb1
MD5 2f42410dbfe7ed4f96e5c082ef737785
BLAKE2b-256 4fce74c84564062e6365d0e3187c4f8b6370a9d6de23e59cd3e1c58f05bf1a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8c5c71ee00e5ecbd62c439d683c1a01220988a0acd36aef94880215318de253d
MD5 42bc6d83078b3bda7b3ba122c9670ac7
BLAKE2b-256 2979d0efbdcbb45f5bff20f7ac6febf8f3c88410bf3f3f8b4ab3d7f3cf43833c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dbad8e652d28d73237acd7aefd18511029ce94f35a3b6c4021d80bb6cd3f044
MD5 178c0b021ea0b0de7360bbf2ebc1aaf5
BLAKE2b-256 cef0a275f5d89e5dee8abf9f8013f25ceff4b13d9660470a0e50262411808eec

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4d302fbad0a849beafdd9e8e25deffb8a8f0c5fe363349d45db93bb8524b2885
MD5 645de646c62608069745a279929c1bf6
BLAKE2b-256 a3bb7a61ed5698e57a116b4be1141041af54b58eab66aee31bd8fb3bdf15bdc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1fb0b33ca8f3e5f39981cd6bda8099572140ca18e7dbdceef482d7dfc735b4f0
MD5 1ca800b9e4032f7fdf74072c3aa0a733
BLAKE2b-256 4489a4d0a2eb2877ae086110a20ed7a2a6706774b9fe52e8093ac2427bd2ac17

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e6765f8d52d035808bc0e8d2b46d713691b523ad804181f84d5e71901d96946c
MD5 8c4b99c9bee20b583452a23f80663ba4
BLAKE2b-256 d80dec77bc942482e442be547696d32e6a707cf5a85d88f302ab7991d3da09ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42f704c88e727ec3d7dcb680fa1cfef960c0053e50f9d1b53d1efbc6fbd928f9
MD5 24dd99125b664e1d23bdb76d9b5d81a9
BLAKE2b-256 25b1f7123da6710e571cd210e6d812f4bf35f3d862765d7ad7f10d927b8c2250

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b005c10172580a30ce019475e2d248e72c7113915a9463fcaf05668e0cb1edf
MD5 e6dfa6d2e6dcb9d217436b1622c1aca4
BLAKE2b-256 cd8a8a9024e619d5f7e7b397e0fa48113eb8476ab602654f44a229da6c83c126

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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

File details

Details for the file wkb_wkt_converter-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 df453148a4f7e5f39657febd80265b59e3fd6b794c949b6e451054477582cd7b
MD5 aa420f2c966d1e75e396a5ca55042f65
BLAKE2b-256 eb9dcbcab0ddec3995ddef522c5c43d2473d832fef51f45097d4068fcd8c1e0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.5.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release.yml on adrien-berchet/WKB_WKT_Converter

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