Skip to main content

OGC API building blocks for Python. Conformance first. By design. Only async.

Project description

geocardo — Conformance first. By design. Only async.

geocardo

Conformance first. By design. Only async.

OGC API building blocks for Python. Conformance isn't a goal — it's a structural property.

Status

🚧 Pre-alpha — under active design. APIs are unstable. v0.1 is being built. See docs/architecture/roadmap.md for the plan.

What is this

geocardo is an async-native, framework-agnostic Python library for building OGC API services. The OGC specifications themselves are the foundation: a Rust catalog parses the official OGC OpenAPI documents and compiles them into a binary the Python layer queries at runtime. Everything else — domain model, configuration, OpenAPI generation — derives from that catalog.

You write filterable = true. geocardo maps your intent to the right OGC specification, verifies your provider supports it, generates the conformant OpenAPI, and validates everything at startup.

Why

Two roads exist today for OGC API in Python:

  • pygeoapi — a configurable server. Conformance is declarative. I/O is synchronous.
  • Custom code — reinvent content negotiation, pagination, link building. Conformance sacrificed to deadlines.

geocardo is a third road: a library, not a server. Async-native. Conformance by construction.

Foundational principles

  • Conformance first — if it can't be conformant, it isn't exposed.
  • By design — the OpenAPI is built, not pruned. Conformance classes are calculated, not declared.
  • Only async — composes natively with TiPG, Titiler, Obstore, asyncpg, and the rest of the Python/Rust async ecosystem.

Architecture

Domain-Driven Design with Hexagonal architecture (Ports & Adapters). Python for the domain and orchestration. Rust for hot paths: specification catalog, CQL2 parsing, JSON Schema validation, GeoJSON serialization.

See docs/architecture/ for the full design and the ADR series.

Quick start

🚧 Not yet — v0.1 is the first usable milestone. Star the repo to follow progress.

For contributors wanting to build from source now, see CONTRIBUTING.md. Short version:

git clone https://github.com/francbartoli/geocardo.git
cd geocardo
uv sync          # installs Python, deps, builds the Rust extension
uv run pytest    # verifies the build

Project context

This is a personal project by Francesco Bartoli. It complements rather than replaces pygeoapi.

Contributing

See CONTRIBUTING.md. Read the ADRs in docs/architecture/ before making non-trivial changes.

License

MIT — see LICENSE.

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

geocardo-0.0.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distributions

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

geocardo-0.0.0-cp312-abi3-win_amd64.whl (84.9 kB view details)

Uploaded CPython 3.12+Windows x86-64

geocardo-0.0.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.2 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

geocardo-0.0.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (169.8 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

geocardo-0.0.0-cp312-abi3-macosx_11_0_arm64.whl (162.5 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

geocardo-0.0.0-cp312-abi3-macosx_10_12_x86_64.whl (170.4 kB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file geocardo-0.0.0.tar.gz.

File metadata

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

File hashes

Hashes for geocardo-0.0.0.tar.gz
Algorithm Hash digest
SHA256 b3e467c551eb7c4097f802c1f9c5587584c87265ac7c5a0f5c87207b38e5239c
MD5 158c825b2d5851feec92ae882aa8ccf3
BLAKE2b-256 27a0491e098fa40e9ee68aa0c7943d587c18e7e973a2a5e72bccf5b1c458888f

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0.tar.gz:

Publisher: release.yml on francbartoli/geocardo

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

File details

Details for the file geocardo-0.0.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: geocardo-0.0.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 84.9 kB
  • 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 geocardo-0.0.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e72f074e217078d11840fe7e3ed39b03de2e926afddf3744763ee508a2f3c202
MD5 0f7cde44ca3d08a1177d373e272195a5
BLAKE2b-256 10dc0012d5ef0cae3916b5bc4da550d0563acd9994c2ad6b9045ad144f32f45c

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0-cp312-abi3-win_amd64.whl:

Publisher: release.yml on francbartoli/geocardo

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

File details

Details for the file geocardo-0.0.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for geocardo-0.0.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40a7f2fdff2bb96ff63f8c8d66081cc4088a30bb5aaf87eca4bd4249efc23047
MD5 5d610365ee24b560d0be234ae90d6db1
BLAKE2b-256 8e97824ed86754b58e7707e565e3f4d744a590846c499cbc884a33274116aaae

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on francbartoli/geocardo

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

File details

Details for the file geocardo-0.0.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for geocardo-0.0.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 126aa91404da40c1db6f683f2e06cd14fe8ddec4da1ffaf843117839ddf90d0a
MD5 d6721ec30fc732af0bf173f4d8ea3a78
BLAKE2b-256 2fd364f9c53a55646a6c9943ff6face9b5d6319ac161cf1fef8fa4e7681f117e

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on francbartoli/geocardo

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

File details

Details for the file geocardo-0.0.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for geocardo-0.0.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c0847b545d282b9337847671b85e613abd089d1e7821081a4359ace75b32a45
MD5 394d22804de98f9b409dffca3048aadf
BLAKE2b-256 cb32160d755faab7d230c10d93c0867507d550b4cd5d9fae7ee60e863ce5e84e

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on francbartoli/geocardo

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

File details

Details for the file geocardo-0.0.0-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for geocardo-0.0.0-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 758016499e47bc56846aee755a582cd0ba9de136fcd98d8a819ff1f96c1eb439
MD5 387dd944918f91a39dcef9060d309d92
BLAKE2b-256 1ccde6c4998d41a06045a554ca802abe2f4515fffd2f3a96d5408e5b63a88e12

See more details on using hashes here.

Provenance

The following attestation bundles were made for geocardo-0.0.0-cp312-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on francbartoli/geocardo

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