The conformance board (tests/afi/test_capability_parity.py) is now fully green: 90 capability cells + 4 meta-locks + 3 codegen byte-parity = 97 passed. The gaps the prose table used to launder as "Django-only" / "out of scope" are wired, against the pinned-spec model (single-authored spec, byte-identical conformance across languages) — never per-language reimplementation. FastAPI — edge_manifest + PSR (logic single-sourced in mizan_core.manifest), WebSocket RPC (/ws/ through the shared dispatch), SSR (the framework-agnostic SSRBridge relocated to mizan_core.ssr; Django rides it from there), Shapes (SQLAlchemy projection, same declaration surface as django-readers), Forms (Pydantic schema/validate/submit). Rust (Axum + Tauri + cores/mizan-rust) — X-Mizan-Invalidate header, auth= enforcement, origin HMAC cache, edge manifest + PSR, WebSocket handler / IPC subscription channel, multipart upload, SSR bridge, Shapes, Forms; JWT/MWT mint+verify and cache-key derivation byte-pinned to the Python reference (cache_keys_pin, token_pin, invalidate_header_pin). TypeScript — a KDL IR emitter byte-identical to the Python build_ir (so a TS backend can feed the codegen — the largest gap), multipart upload, session-init, WebSocket transport, SSR bridge, JWT/MWT mint (pinned to Python), Shapes, Forms. Verified in the merged tree: core 25, fastapi 74, django 353/21-skip, mizan-rust (incl. cross-language pins) green, axum 10, tauri 8, mizan-ts 103/2-skip. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
39 lines
880 B
TOML
39 lines
880 B
TOML
[project]
|
|
name = "mizan-fastapi"
|
|
version = "0.1.0"
|
|
license = "Elastic-2.0"
|
|
description = "Mizan FastAPI backend adapter — HTTP RPC dispatch + context bundling, built on mizan-core."
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"mizan-core",
|
|
"fastapi>=0.110",
|
|
"pydantic>=2.0",
|
|
"python-multipart>=0.0.9",
|
|
"sqlalchemy>=2.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
mizan-fastapi-edge-manifest = "mizan_fastapi.manifest:main"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"httpx>=0.27",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/mizan_fastapi"]
|
|
|
|
[tool.uv.sources]
|
|
mizan-core = { path = "../../cores/mizan-python", editable = true }
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = ["src"]
|
|
testpaths = ["tests"]
|
|
python_classes = ["*Tests", "*Test", "Test*"]
|
|
python_functions = ["test_*"]
|