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 for full conversions, with simple header rewrites preserving input byte order
  • 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 simple Point, LineString, and Polygon EWKB/WKB hex or raw WKB input in either byte order, 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. 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 Point, LineString, and Polygon EWKB/WKB hex or bytes-like inputs in either byte order 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.6.1.tar.gz (42.2 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.6.1-cp314-cp314-win_amd64.whl (177.5 kB view details)

Uploaded CPython 3.14Windows x86-64

wkb_wkt_converter-0.6.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.1-cp314-cp314-macosx_11_0_arm64.whl (252.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

wkb_wkt_converter-0.6.1-cp314-cp314-macosx_10_12_x86_64.whl (258.5 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

wkb_wkt_converter-0.6.1-cp313-cp313-win_amd64.whl (177.5 kB view details)

Uploaded CPython 3.13Windows x86-64

wkb_wkt_converter-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.4 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.1-cp313-cp313-macosx_11_0_arm64.whl (252.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

wkb_wkt_converter-0.6.1-cp313-cp313-macosx_10_12_x86_64.whl (258.5 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

wkb_wkt_converter-0.6.1-cp312-cp312-win_amd64.whl (177.7 kB view details)

Uploaded CPython 3.12Windows x86-64

wkb_wkt_converter-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.1-cp312-cp312-macosx_11_0_arm64.whl (253.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

wkb_wkt_converter-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl (259.1 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

wkb_wkt_converter-0.6.1-cp311-cp311-win_amd64.whl (180.3 kB view details)

Uploaded CPython 3.11Windows x86-64

wkb_wkt_converter-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (279.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (254.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

wkb_wkt_converter-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl (260.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

wkb_wkt_converter-0.6.1-cp310-cp310-win_amd64.whl (180.1 kB view details)

Uploaded CPython 3.10Windows x86-64

wkb_wkt_converter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (279.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

wkb_wkt_converter-0.6.1-cp310-cp310-macosx_11_0_arm64.whl (254.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

wkb_wkt_converter-0.6.1-cp310-cp310-macosx_10_12_x86_64.whl (260.7 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: wkb_wkt_converter-0.6.1.tar.gz
  • Upload date:
  • Size: 42.2 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.6.1.tar.gz
Algorithm Hash digest
SHA256 476c0f82dabc51bc2162b17d80ad18c0453dec334f96064bb16789c778e47ab8
MD5 e13a712d3d0a1ff40a29f2a385b6f38d
BLAKE2b-256 60e0ee4028045b0558741de35165b9b179e536d72e98f66fd2e7c1b12ca467f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1.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.6.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f2c3a228fd778b682597e0617f77e8e677f22ce1c32896c627307a856b9f1009
MD5 769e6116804e965048121f09a7720d3c
BLAKE2b-256 f438397768a6712820335765965844989f738a594d9d7a0b0f9b0627903cb778

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c73678cf3f1e76841b0ec319743da558c597baf55054ee9d4988a1acfe5646e0
MD5 3cc979addbc453d7d0613a4aa54d30cd
BLAKE2b-256 8977025f7175f57c47fea56bcb0ab6ebd69022e9782d684f861194c3afbfd320

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80c3cbf07de085e925c753986005b1c4f2fbe34e4716809bbad8938c9003f5d3
MD5 e3f37b089514c707100e94e1bb31e310
BLAKE2b-256 eca470e79b8aef0a1d48430c12579a3ee3942de75506fbc1bf91dddba0e35cac

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b9965e8892b0a09e03954f218db1f54c8d962b50735135d6ccd0ec87f58f7129
MD5 f5c75dd09248cb19b3b5383a710d333b
BLAKE2b-256 00d59eeb2f969275099182cca27aa9be2e695256920c989ca8aea1d315247f1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 98b77e2f303fc76bfc2bab3c02c64c1a457797bc8f99feace9291efa53b40b21
MD5 349cbded7254dbb5dba6cddf581d93f2
BLAKE2b-256 cf94e7be44b60e4ef97c7edd56e86d8579dcb6fa03d31b89d221aaa84dfbe9b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8b61b737ed58388ccefd696c5a3afe380da06249d25b8f481908f169cacbf27c
MD5 49c9cd60e5a9ee072d9aaa84a83e2697
BLAKE2b-256 bb19e8c26da8ee440fee8f8d5314a15d9da7b1ebddf19f916bd862b1481fc430

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5330be97d024a08e1b39f92f6ea02022c5a390b459bbf416f471d5065e3fdf85
MD5 da6c707bb7ebf4edb9981ce5334f0d76
BLAKE2b-256 e788b5507cbb99023cb89fbb7ca00075d14d827027eb67e387de7163c60a951c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 26ce66314888c89e41787b8889699b50d7d7fa12bbd848fe73786bad3bae018a
MD5 8d58c7497efb1a48240323597d9555d6
BLAKE2b-256 4811ef86fdc500608b13f3117d6407cba758baa1f77d349ce7dd8761262a6f0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9fe2ffdd194437425c7797a0143ca60d344e4349b8574ddfb8df4c4d23529442
MD5 d071cccca070c30460472a5236a22263
BLAKE2b-256 3cc8fcb1247de17e94cd6b3ffe3084cd94c65cb1fe5ccc3b9b784f78f7b251a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb4aa2688741c7bdb68fc2341d4c8c28656a1645d25b2847fb5d1389cf5f3333
MD5 9e5b45ade6f8e3bc7be6c0c560ea6d4d
BLAKE2b-256 9e51e0a69f58113c58cc709a59423f79c57ddd1fdc7ed1884212c48569b8ec0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12bd56e3b264e8cf0771322bb98621b2dda77b8e66d8ad7f6b8a122b8bd214f9
MD5 ce9403dc7488ade03158972364847e56
BLAKE2b-256 450d5d8014cf7b5a2583d52802c8bd2e4486455a3f8162dfdc1dc8b2aea7d458

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d7ef25d419dceae33e72b9d60c984a7d32e7138e09f580b9de6b732b8f00f5ba
MD5 39abc9da8c9e33a8d2c057728bc6a5c3
BLAKE2b-256 0ba95df07b1c2eb05023cf19dad83a7918c0cc663715ee960bb8f890131713f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 35bdc564d3348bfce64e7148343068e3e29d3b2a48f33d6cfc47c5ebf72d7bcb
MD5 422329b4ad73b9b0c7c111af813937dc
BLAKE2b-256 d4bfcdba05cf2b60233daa6e6d3685298e3a0e08140d9a788db326e35d71b943

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ab275b7adfc9ad4377c94814e62091252946722ca074da9d098c21739feab51
MD5 82b84a57b33a4f232d130006bdbf26e7
BLAKE2b-256 bbf88a30d01f355e4f56a01a823dbbd2b5cc7ee070fb767d10fbab3040c0fd0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3626b20075daa5def7bb56fd4abbe1ae1aae01029825e0ac6df17b14dd1442e2
MD5 9cdf8c8706987173d4c89ad455243b72
BLAKE2b-256 d7a153e839f759a06ce91ee2ecc844537826a81978bc4ef40f74aa7d948170fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b73927a9e7dc39559b5b0507d9e2c3b1731415ec5c4d2f140564c90064a968f8
MD5 eb7bb364b47ad6e2b558ad2357590939
BLAKE2b-256 5ca9131e797395ef2f3a3825fe502484f6800efae74ddf0a28382e7a4e090180

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1d845171f2825ca9b97a69ccb99dc9e869b1b4d84f4653f937e87fa9db6d39dc
MD5 dfb23ede5988da76abd62dca3a24b9ca
BLAKE2b-256 33a8d4963c94795503711e1a4b82bd94b129f8735863ae1ba2da8659e658cd34

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1b9e0bc673295ce4b9070f83fba5f75fb60a4454819bf6e1b3200730318947f
MD5 28a78932f61b0135fd10017de348fa61
BLAKE2b-256 2ee80bb846d0c8c47d05f09ecbc1b77f7da5c1dd1227bc17b303c1b3cb408e0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6406a763ec6943dc10a9fb273abb194e35dae780d2a1ea45f358742f41312c8
MD5 f2fbef963b5f5514036939defe07f5f2
BLAKE2b-256 bd3dd069891db68d4e63116ae1145133c27849295c73dcb1281dd1c25d03362c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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.6.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wkb_wkt_converter-0.6.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b9438eb88c4ab168b05056488cc21379fb00f3144af2daac3aa5ff73de40cb45
MD5 a8f7ef3235304c05d6652558e97c925f
BLAKE2b-256 83005d8121273335e1ebbb9d21d3b9eae81ec0b66a4fabe21ea208b414315421

See more details on using hashes here.

Provenance

The following attestation bundles were made for wkb_wkt_converter-0.6.1-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