opencad-backend
FastAPI transport over the OpenCAD core. This is the only distribution in the
repository that depends on a web framework — opencad and opencad-agent
carry no FastAPI, Starlette, httpx, or uvicorn.
Run
uv run --package opencad-backend --extra occt \
python -m uvicorn opencad_server.app:app --reload --port 8000
opencad_server.app mounts every service router in one process:
| Prefix | Router | Service |
|---|---|---|
/kernel |
opencad_server.kernel_router |
Geometry operations, topology, mesh |
/solver |
opencad_server.solver_router |
2-D constraint solving and diagnostics |
/tree |
opencad_server.tree_router |
Feature DAG CRUD, rebuild, branching |
/agent |
opencad_server.agent_router |
Natural-language modelling |
Each router module also exposes create_app() and a module-level app, so any
service can run standalone — for example opencad_server.kernel_router:app.
Modules
app.py— aggregate app, mounts every routerapi_app.py— shared FastAPI factory with production CORS/docs defaultshttp_kernel_client.py— the only outbound HTTP client to the kernel; implementsopencad.kernel.client.KernelClient*_router.py— one router per service
Kernel transport
Core packages depend on the KernelClient protocol, never on a transport. This
app chooses the implementation at startup: HttpKernelClient when
OPENCAD_TREE_LIVE_KERNEL / OPENCAD_AGENT_LIVE_KERNEL are true, otherwise the
in-process default.
Tests
OPENCAD_KERNEL_BACKEND=analytic pytest
tests/test_core_boundary.py parses every core module and fails if any of them
imports FastAPI, Starlette, httpx, uvicorn, python-dotenv, or opencad_server.
Release files for opencad-backend 0.2.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 | |
|---|---|---|---|
| opencad_backend-0.2.3.tar.gz | 21.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opencad_backend-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.6 kB
Release files / opencad_backend-0.2.3.tar.gz
| Download URL | opencad_backend-0.2.3.tar.gz |
|---|---|
| Size | 21.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7540e6ef58b34844255dbe0535ea4ba9e5808fe058c5a57b8e021cf8966b3ac
|
|
BLAKE2b-256 checksum How to use checksums |
8237a89fcb2459406a90963a5e139a24726877b4b9270218349280b075150757
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|
Release files / opencad_backend-0.2.3-py3-none-any.whl
| Download URL | opencad_backend-0.2.3-py3-none-any.whl |
|---|---|
| Size | 18.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bf4c90499922edc7aca8957c8bbe1b4ce865e660f1a1769fa87d9023f73e752c
|
|
BLAKE2b-256 checksum How to use checksums |
9c70bf9828aee3d8eb2bc95ed88b4762239b69bcd7109b0725a9380da488461b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.2
|