httk-serve
⚠️ EARLY BETA
This is an early beta release of httk₂. The organization of the packages and their APIs should not yet be regarded as stable, and may change between releases.
httk-serve is a httk₂ distribution providing a generic implementation of the OPTIMADE protocol. Durable deployments can pass an httk.store.EntryStore directly to create_asgi_app, which discovers registered OPTIMADE families and queries them lazily; EntryProvider remains the in-memory path for generated and compatibility datasets.
The served API version is OPTIMADE v1.3.0. Implemented optional parts of the
specification include sorting, the references, files, and trajectories entry types,
relationships with the include query parameter, per-property metadata, the partial data
protocol (JSON Lines format and dimension_slices) with the compact list representation,
and the license/available_licenses/warnings meta and base-info fields. Optional parts
that remain unimplemented: cross-source sort merging, filtering on relationship
.target.*/.description/.role properties, the sparse JSON Lines layout, and
rejection of unrecognized query parameters. See
docs/optimade/how_it_works.md for the protocol architecture and backend/web seams.
Multiple Starlette services can be composed at explicit paths. For example, an OPTIMADE index and database can share a parent application without coupling their URL configuration:
from httk.serve import ASGIAppMount, compose_asgi_apps
from httk.serve.optimade import OptimadeIndexConfig, create_index_asgi_app
index = create_index_asgi_app(OptimadeIndexConfig(links=[...]), baseurl="https://example.org/optimade/index/")
app = compose_asgi_apps([ASGIAppMount("/optimade/index", index)], root=ASGIAppMount("/", website_app))
The implementation was ported from the OPTIMADE server in httk v1 (which served OPTIMADE
v1.0.0) and then upgraded to v1.3.0. The legacy client-side validation/ subpackage has
intentionally not been ported; use the official
optimade-validator tool
to check conformance of a running server.
HTTP helpers
httk.serve.http provides lightweight, mountable JSON, JSON-LD, and explicit
file-map applications without requiring a website source tree. Protocol-owned
schemas, vocabulary rules, and discovery document construction remain with
the caller.
Web tooling
httk.serve.web provides Jinja2 rendering, legacy .httkweb compatibility,
static publication, and an ASGI runtime. Its trusted widgets include
httk.serve.table for provider-backed pagination and
httk.serve.optimade_table for browser-side OPTIMADE access. Use
httk serve web serve, httk serve web check, or httk serve web list.
Testing store integration
Tests that combine httk-store with OPTIMADE serving live in this repository, including remote-client federation, SQL/in-memory query parity, and provider serving. httk-store's own tests and examples do not require httk-serve, so store can be released first.
Install .[dev] and run make ci. SQLite and DuckDB integration tests run
locally; MongoDB, PostgreSQL, and ClickHouse tests also run when their
HTTK_TEST_MONGODB_URI, HTTK_TEST_POSTGRES_URI, or
HTTK_TEST_CLICKHOUSE_URI is set. PostgreSQL additionally needs
httk-store[postgresql]. CI provisions real servers for all three backends
and runs the extended test profile against them.
Metadata
Release files for httk-serve 2.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| httk_serve-2.1.3.tar.gz | 447.1 kB | With provenance | Details for httk_serve-2.1.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| httk_serve-2.1.3-py3-none-any.whl | Python 3 | none | any | Details for httk_serve-2.1.3-py3-none-any.whl |
Total release size: 809.9 kB
Release files / httk_serve-2.1.3.tar.gz
| Download URL | httk_serve-2.1.3.tar.gz |
|---|---|
| Size | 447.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
242452abc60f55a8b6edc6a5b4fd254fc6b59f9c8162416ad7f39958eee820ec
|
|
BLAKE2b-256 checksum How to use checksums |
3938519b6f11d326ca7b4a6e27ec9195078a46fb7454362c3ef8607ec4e2fcd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / httk_serve-2.1.3-py3-none-any.whl
| Download URL | httk_serve-2.1.3-py3-none-any.whl |
|---|---|
| Size | 362.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5900dda732cf40c671473a7e5dd8bcef29d66ac7d2603ba559a09503b2b44196
|
|
BLAKE2b-256 checksum How to use checksums |
81a6f934b223481360255f99540bda62689ba3fb9775bfe7851a4e69010a2893
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logSecurity for httk-serve 2.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for httk_serve-2.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.