Skip to main content

WebCortex

pip install web-cortex-framework

Installs as web-cortex-framework, imports as webcortex — the same split as djangorestframework → import rest_framework.

Python 3.12, 3.13 and 3.14, including the free-threaded build (3.14t), which is the fast path for Python-backed routes.

📖 Documentation · Tutorial · Use cases · Security

A Python web framework with a Rust core, built on one idea:

If you declared it, Rust can run it — and an agent can call it.

Django and Rails were designed when the only client was a browser. Today the client is just as likely to be a model. WebCortex treats that as the primary case rather than something you bolt on with a second, hand-maintained tool server.

# api.py
from webcortex import WebCortex

app = WebCortex("bookstore", database="sqlite://./app.db")

app.api_key("WEBCORTEX_API_KEY", id="service", scopes=["read", "write"])
app.rate_limit(per_second=50)
app.anonymous_scopes("read")

app.resource(
    "books",
    fields={"id": int, "title": str, "author": str, "year": int},
    tools=True,
    read_scopes=["read"],
    write_scopes=["write"],
)

@app.get("/books/{id}/blurb", tool=True, scopes=["read"])
def blurb(id: int) -> str:
    """One-line pitch for a book."""
    return f"Book {id} — highly recommended."
$ webcortex dev

You now have a REST API, an OpenAPI 3.1 document, a live MCP server exposing all six endpoints as tools, authentication, rate limiting, and security headers. No second file, no schema written twice, no drift.


Start here

# 3.13, or the free-threaded 3.14t — not GIL-enabled 3.14. See Known issue.
uv venv --python 3.13 && uv pip install web-cortex-framework

webcortex new myapp                # --template api | fullstack | agent | behaviour
cd myapp
export WEBCORTEX_API_KEY=$(webcortex keygen)
webcortex dev

Why a Rust core, specifically

Most Rust-accelerated Python servers put Rust at the socket and call Python for every request. You get faster parsing; your handler is still interpreted.

WebCortex puts the boundary somewhere more useful. Python is a declaration language that compiles to a plan the Rust runtime executes. A route whose work is expressible as data — a query, a proxy, a rendered page, a static file, an agent invocation — runs entirely in Rust and never enters the interpreter at request time. In practice that is most of a CRUD API.

$ webcortex check
  12 routes, 9 served without touching Python

When a route genuinely needs Python, it crosses onto a pool of free-threaded interpreter workers (CPython 3.13+/3.14, GIL disabled), each running its own event loop. Handlers run in real parallel — measured at 4.82× vs 1.38× under the GIL (DESIGN.md has the numbers and their caveats).

WebCortex runs correctly on a GIL build too, and tells you which mode it is in.

Behaviours

A "skill" written as a prompt is a suggestion. The model reads it and may ignore it, and "if X then Y" fails silently when it does.

A Behaviour inverts that. The control flow is real Python — a for loop is a loop, an if is a branch, and both execute whether or not a model would have chosen to. Only the leaves are probabilistic:

@app.behaviour("triage", tools=["list_tickets", "update_tickets"],
               max_steps=100, token_budget=100_000)
def triage(ctx, input):
    """Classify every open ticket and escalate the urgent ones."""
    tickets = ctx.call("list_tickets", limit=50)
    escalated = []

    for ticket in tickets:                        # a real loop
        verdict = ctx.ask(                        # a model call
            f"Grade this ticket:\n{ticket['body']}",
            schema={
                "type": "object",
                "properties": {
                    "urgency": {"type": "integer"},
                    "category": {"enum": ["bug", "billing", "other"]},
                },
                "required": ["urgency", "category"],
            },
        )
        if verdict["urgency"] >= input.get("threshold", 7):   # a real branch
            escalated.append(ticket["id"])
        ctx.call("update_tickets", id=ticket["id"], body=ticket["body"],
                 urgency=verdict["urgency"],
                 state="escalated" if ticket["id"] in escalated else "triaged")

    return {"escalated": escalated, "usage": ctx.usage}

You get a procedure with deterministic structure and probabilistic steps, rather than a probabilistic procedure.

ctx is how a behaviour reaches the world:

ctx.call(tool, **kwargs) invoke one of the app's tools, in-process
ctx.ask(prompt, schema=...) a model call; a schema forces the shape, so branches switch on real values
ctx.log(msg) / ctx.halt(reason) narrate or stop deliberately
ctx.usage / ctx.trace budget consumed and every leaf executed, readable mid-run
ctx.user / ctx.tools the delegated principal and what it may call

A behaviour is a tool. It registers as a route, so it is automatically an MCP tool, an OpenAPI operation, and something an agent — or another behaviour — can call. Composition is just a tool call, so budgets and scopes still apply.

The runtime enforces the limits, not your diligence:

  • max_steps caps total leaf operations. A loop that would run 100 times with max_steps=3 stops at 3 and returns {"halted": true, "reason": ...}.
  • token_budget caps spend.
  • A behaviour cannot call a tool it did not declare.
  • An approval-gated tool cannot be laundered through a behaviour — the gate halts the run, exactly as it halts an agent.
  • Scopes are delegated by intersection, never unioned.
webcortex new myapp --template behaviour

The seven kinds of route

Kind Declared with Runs in
Static app.static(...) Rust
Query app.query(...), app.resource(...) Rust
Page app.page(...) Rust (minijinja)
Files app.static_files(...) Rust
Proxy app.proxy(...) Rust
Agent app.agent(..., expose_at=...) Rust
Behaviour @app.behaviour(...) Python worker pool
Python @app.get(...) Python worker pool

Every route is a tool

Mark a route tool=True and it appears in MCP tools/list, with an input schema derived from the handler's own type hints. Agents declared in the same app call those tools in-process — a function call through the same dispatcher the HTTP server uses, not a loopback request.

app.agent(
    "librarian",
    model="claude-opus-5",
    tools=["list_books", "get_books"],
    scopes=["read"],          # what a run may do
    expose_scopes=["read"],   # who may start one
    max_steps=8,
    token_budget=50_000,
    expose_at="/ask",
)

A typo in tools fails at boot with a "did you mean" suggestion.

What makes agents safe to deploy

These are enforced by the runtime, not by your diligence:

Delegated authority. An agent run executes as caller.delegate_to_agent(...), whose scopes are intersected with the caller's — never unioned. An anonymous caller cannot launch a privileged agent. This is the confused-deputy defence, and it is a property of the type, not a convention.

Human approval gates. Mark a route approval="required" and an agent asking for it does not get it — the run suspends and records an approval request. The gate also applies to direct MCP calls, so it cannot be stepped around.

@app.delete("/books/all", tool=True, scopes=["write"], approval="required")
def clear_catalogue(confirm: bool = False) -> dict: ...

Runtime-enforced budgets. max_steps and token_budget are checked before each provider call. A looping model costs a bounded amount.

Scope-filtered tool lists. tools/list shows only what that caller can invoke. A reader sees three tools where an admin sees six.

A full audit trail, including refused calls, at GET /_webcortex/audit.

Security defaults

Deny-by-default throughout; relaxing something costs a line, tightening it costs nothing. API keys are referenced by environment variable, hashed with SHA-256, and compared in constant time. JWT (HS/RS) with mandatory expiry validation. Per-principal token-bucket rate limiting. Security headers on every response. CORS that refuses * with credentials at boot. Path traversal, symlink escapes, and dotfiles refused by the static server.

webcortex security prints exactly what is reachable without a credential:

$ webcortex security
{"auth_configured": true, "public_routes": ["GET /"], "gated_tools": ["DELETE /books/all"]}

The frontend, without the mess

Two clean paths sharing one data layer, chosen per route:

Server-rendered pages, executed in Rust:

app.page("/", "index.html", sql="SELECT * FROM books LIMIT 20", bind="books")
app.static_files("/assets", "static")

The rule that keeps this clean: a template receives a data object and nothing else. It has no database handle and cannot call Python, so it cannot grow logic. Data is resolved before rendering, from a constant, a query, or a Python handler. Autoescaping is on and derived from the file extension.

A typed TypeScript client for SPA frontends, from the same route table:

$ webcortex typegen          # writes client/api.ts

Zero dependencies, fetch-based, with auth built in. Pages and static mounts are excluded — they are not part of the JSON API surface.

Commands

webcortex new <name>      scaffold a project (api | fullstack | agent | behaviour)
webcortex dev             run with a startup report
webcortex check           routes, tools, and the public attack surface
webcortex security        what is reachable without a credential
webcortex tools           the agent tool manifest
webcortex typegen         generate a typed TypeScript client
webcortex openapi         the OpenAPI 3.1 document
webcortex sql             DDL for declared resources
webcortex keygen          mint an API key

Security

WebCortex has been through an adversarial review of its own controls — auth, authorization, injection, traversal, SSRF, exhaustion, disclosure — plus stress and soak testing. Six issues were found and fixed, each with a regression test in tests/test_pentest.py:

Severity
Remote DoS + total auth failure via a JWT library panic Critical
No panic boundary on the request path High
Proxy path traversal usable as an SSRF primitive High
Unbounded behaviour recursion exhausting the worker pool High
Python tracebacks returned to clients Medium
Client input faults reported as 500s Low

Soak: 1,786,805 requests, 0 errors, 0 panics, memory at steady state.

SECURITY.md has the full report — including what was not tested and the known limits.

Status

v0.3. Working and tested: the manifest IR, router, native ops (static / query / proxy / page / files), the free-threaded Python bridge, authentication and scopes, rate limiting, CORS, security headers, graceful shutdown, Behaviours, the agent runtime with approval gates and budgets, the audit trail, OpenAPI, the MCP server, and TypeScript generation. 251 tests (66 Rust, 185 Python, including a 54-test adversarial suite), clippy clean.

Not yet: Postgres, SSE streaming, durable agent runs, local model supervision. See DESIGN.md for the roadmap, honest risk grading, and — just as importantly — what is deliberately not being built.

Resolved: the CPython 3.14 import failure

0.3.1 and earlier fail to import on CPython 3.14.7. Fixed in 0.3.2; upgrade if you are on 3.14.

ValueError: module functions cannot set METH_CLASS or METH_STATIC

The cause was pyo3 0.29.1, fixed in 0.29.2. The reason it took a day to find is worth recording, because it is a trap any Rust-backed Python project can fall into: Cargo.toml was updated to require 0.29.2 while Cargo.lock still pinned 0.29.1. Cargo resolves the newer version at build time, so builds were correct — but Swatinem/rust-cache keys its cache off Cargo.lock, which had not changed, so CI kept restoring objects compiled against the broken version. The fix looked falsified when it had simply never been built.

If you hit something similar: build once with a cold cache before concluding a dependency fix did not work.

For AI coding tools

AGENTS.md is the machine-facing reference: the complete API surface with exact signatures and defaults, the binding and scope rules, the constraints the runtime enforces, and the specific mistakes that are cheap to make and expensive to debug. Claude Code, Cursor, Codex, Aider and Copilot Workspace all read it by convention.

It is written to be correct rather than welcoming. Humans should start with the docs site instead.

Building from source

# 3.13 is the recommended toolchain today — see "Known issue" above.
uv venv --python 3.13
uv pip install maturin pytest
.venv/bin/maturin develop --uv
.venv/bin/python -m pytest tests/

The free-threaded build is also supported and is the configuration the bridge was designed around:

uv venv --python 3.14t

License

Apache-2.0

Metadata

Release files for web-cortex-framework 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for web-cortex-framework 0.3.2
File Size Uploaded
web_cortex_framework-0.3.2.tar.gz 125.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for web-cortex-framework 0.3.2
File
web_cortex_framework-0.3.2-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
web_cortex_framework-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
web_cortex_framework-0.3.2-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
web_cortex_framework-0.3.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
web_cortex_framework-0.3.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
web_cortex_framework-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
web_cortex_framework-0.3.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
web_cortex_framework-0.3.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
web_cortex_framework-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
web_cortex_framework-0.3.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
web_cortex_framework-0.3.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
web_cortex_framework-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details

Total release size: 110.1 MB

Release files / web_cortex_framework-0.3.2.tar.gz

Download URL web_cortex_framework-0.3.2.tar.gz
Size 125.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4d04dcd8ab377de0cae9e2a907900f01d739948601b7b57e130a06bc84b225da
BLAKE2b-256 checksum
How to use checksums
2882a60f1d663f9ad1bf41139b3539b0a5d9c497c42122d629b821af1bd617a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314t-win_amd64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314t-win_amd64.whl
Size 5.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
4a2dab2e6af3b141a12a5da38c77a5b61333ecb6b00a8964ed5df8a3a992fa93
BLAKE2b-256 checksum
How to use checksums
51896e469d9534224c188cd1a6a1b65e52b930743a972dfcc31f4d3bc5cd25c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
de670d2575d9a3b9bc53cd8b68e731c179a83095643ffb27d99bf2e532ec53d0
BLAKE2b-256 checksum
How to use checksums
6fa3e9bb602930aaa9289649fbb5de85cb864ef49a18d87485a28f19ddd21428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2fc3c93beef8fd1096a480b3e49e27da8636421157db3f6f363a3803ad4b7cf1
BLAKE2b-256 checksum
How to use checksums
9fe2c89b988392245a1c573da2d24af4bf9edc54aaa2d3a424b79d252ec0b4dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 5.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
85ed415bbc872d99a1e35bb85daa0657107a3f07a7c430642d15d2d954f5d491
BLAKE2b-256 checksum
How to use checksums
ee5ce44ae05890e8cbf39c6bc18e12701d80e2f57f6c428ac7c18b3b3e91b012
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314t-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
41ef6a53eb9fe3a879aca1aaf29923ffa7f20b810acbf89c16fc24487799e34c
BLAKE2b-256 checksum
How to use checksums
37fea1d295a15a6460cd9cde673547ed4e68138d7e33adf8e7ad9caf81eb0f11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314-win_amd64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314-win_amd64.whl
Size 5.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9ab69fcc28a264d5d9338cebb15908e5232f9d6586c11b600f19c53b4a64ffd9
BLAKE2b-256 checksum
How to use checksums
0a8ec35c73fc674edfebfff06ee3a56f352084c8030dd086edd3cbaae4ccefed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.8 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3248d11bb15871b5b627b34a65f537a456ca4af6b60a3d5ee778f50e70f517c6
BLAKE2b-256 checksum
How to use checksums
026e622366753c7cbadcedce1ae231d09c6001cf5ff62e1cae2fea916a0c4bf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.6 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
536cb06971bf44ae8647f232635378dca26fc5dec9fcad163b78ab9ae6978262
BLAKE2b-256 checksum
How to use checksums
30820f3bc370f4ef7e31e21a1a83631ecd380f526b8f02fd544b840239847df1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314-macosx_11_0_arm64.whl
Size 5.2 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3cb7c7d7ddb39e5715eb3fa3aab8cb1414d51775666c74d3a071f81fa2caf003
BLAKE2b-256 checksum
How to use checksums
5a76dac4610d9c28bd19cacb533c6f740d180897a8e2675a3d973f161dd7f90a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp314-cp314-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7a5dfa718cb8b898def04e6d4bd2ac7284465d9b77ade514c51bf12a586eccd8
BLAKE2b-256 checksum
How to use checksums
8194af2aa526283bf8b5216fe4110c3c822b2fd8482b004208d342f68141d3c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp313-cp313-win_amd64.whl

Download URL web_cortex_framework-0.3.2-cp313-cp313-win_amd64.whl
Size 5.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d777e53a35574971fb8229724b818f5b27f3d3c5f7b00a5651f3aa7b4a2308a6
BLAKE2b-256 checksum
How to use checksums
ff9008e89681435144e0144bd55b319f33b89f6f2d8845fd042f8e1bcaa38aea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.8 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2b5f51cd44d719dc71c0d70644f63df3853f156ab2fa53d866b7a3782ce3d04c
BLAKE2b-256 checksum
How to use checksums
dfc63be6dc61ae7068f93b23e6978825dc7d0bba95b3adf1e86ceb19eef15f22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL web_cortex_framework-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.6 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
60b62b21e84e541101efebe957d41a8f59b22be290622584a788203e476d7647
BLAKE2b-256 checksum
How to use checksums
b421f5235bd4f927d1c59999e2fa4c4a66701289f4db60233cb99a8b3b34d1ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL web_cortex_framework-0.3.2-cp313-cp313-macosx_11_0_arm64.whl
Size 5.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5fc16d8e951f9b5a783eab5c67292c99850d38bc10c95939bb8a4e6979567423
BLAKE2b-256 checksum
How to use checksums
9d028451dd410ad74341c49a6a1f2e4781336ba9581cc0d7df726a3b8d5b62c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp313-cp313-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
93c4cf50c9fb2c1f53d7c3570411d8a42a63dab9afe9363907db8587ec22cbc6
BLAKE2b-256 checksum
How to use checksums
049edc4bad2f610f40c3e2faf4c73f4fc0c5aca2c5ba52fab9904601191167b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp312-cp312-win_amd64.whl

Download URL web_cortex_framework-0.3.2-cp312-cp312-win_amd64.whl
Size 5.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
eddac8b83efaab3b2ffb8436a470f3727c05e8dee43d35debc88f65b3e0260cf
BLAKE2b-256 checksum
How to use checksums
42e081f7f5b53b8093d9fd1125dcf659cd347d8d0dde6c968aa9d7e4e486370d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.8 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
83c04b0e5f43c91566386652062d3a936e26aef267ecee405b9becf041e60924
BLAKE2b-256 checksum
How to use checksums
df1861ea0dd4ecb3ada9fd984a2a983f2ada214d7f26de001f97d384e08c790d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL web_cortex_framework-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.6 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
24123ff0c46549edb618adae9477122db644c2760da1b3d8588c0209688b82ab
BLAKE2b-256 checksum
How to use checksums
297575dc0a15393a88bef0364dfef22e33ae97c0fddd6ddeb054b29e94435455
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL web_cortex_framework-0.3.2-cp312-cp312-macosx_11_0_arm64.whl
Size 5.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
40483248760cdf01abf7d28e2ea320fd411750e67e558f8bdf1463bebb25ce68
BLAKE2b-256 checksum
How to use checksums
1bd2d8362009194d7cd6df3b6c4ee506555b087755bbc9965c2c8c86489d20d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release files / web_cortex_framework-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl

Download URL web_cortex_framework-0.3.2-cp312-cp312-macosx_10_12_x86_64.whl
Size 5.5 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
915b53042fa5f22bd07f6038ae11f1532d6caa5b75ed5d72178277c59bd135b3
BLAKE2b-256 checksum
How to use checksums
ab911a03468d0b6fe9acdc88c0667296a92d8e3d53df00f33a52d685c252cc70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

2.1.1

21 release files

2.1.0

21 release files

2.0.1

21 release files

2.0.0

21 release files

This release

0.3.2 This release

21 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page