Skip to content

Third-party software

Fab Dispatch is MIT licensed. It is built on the open-source software below, each under its own license; this file lists what the app ships with. Every license here allows use in an MIT project, commercial use included. The data in the app is synthetic, made for this project, and covered by the MIT license too.

Runtime: API

Package Used for License
fastapi HTTP API MIT
uvicorn ASGI server BSD-3-Clause
uvicorn's [standard] extras: uvloop, httptools, websockets, watchfiles Faster event loop, HTTP parsing, WebSockets, auto-reload uvloop: MIT or Apache-2.0; httptools: MIT; websockets: BSD-3-Clause; watchfiles: MIT
pydantic Validation and models MIT
pydantic-settings Configuration from the environment MIT
numpy Numerics BSD-3-Clause (bundled parts: 0BSD, MIT, Zlib, CC0-1.0)
scipy Hungarian assignment, exact MILP (HiGHS, MIT) BSD-3-Clause
pyvrp Vehicle-routing solver strategy MIT
highspy Certified lower bounds by column generation (scripts/certified_bound.py) MIT
qdrant-client Vector search for the assistant and repair history Apache-2.0
pyjwt with cryptography Verifying sign-in tokens MIT; cryptography: Apache-2.0 or BSD-3-Clause
psycopg Postgres driver (production) LGPL-3.0-only, see below

psycopg (LGPL-3.0). Used unmodified, as a separately installed library the app imports. Under the LGPL that places no conditions on Fab Dispatch's own code, and you can swap in any other build of psycopg. Its source is at the link above. The default local setup (SQLite) doesn't load it at all. The psycopg[binary] wheel the app installs bundles libpq (the PostgreSQL License, a permissive MIT-style license) and OpenSSL (Apache-2.0).

Runtime: web app

Package Used for License
react and react-dom UI MIT
@supabase/supabase-js Sign-in MIT
react-markdown Rendering help articles MIT
remark-gfm Tables and lists in help articles MIT
Geist and Geist Mono Typefaces, served by Google Fonts SIL Open Font License 1.1

Documentation site and development tools

Used to build, test and document the project, not shipped with the app: MkDocs (BSD-2-Clause), Material for MkDocs (MIT), Redoc (MIT), Vite (MIT), Vitest (MIT), Playwright (Apache-2.0), axe-core (MPL-2.0) and ESLint (MIT).

The Python development dependencies (backend/requirements-dev.txt). Two of them produce numbers in docs/ANALYSIS.md rather than test the app, so they are listed with the same care as the runtime:

Package Used for License
pytest and pytest-cov Test runner and coverage MIT
httpx In-process API client in the tests BSD-3-Clause
ruff Lint and format MIT
pip-audit Known-vulnerability scan Apache-2.0
pyyaml Reading mkdocs.yml in the docs-site test MIT
highspy Certified optimality bounds by column generation (scripts/certified_bound.py, ANALYSIS.md) MIT
scikit-learn Classifier and quantile trees in the repair-duration study (scripts/duration_study.py, ANALYSIS.md) BSD-3-Clause

Complete lists

The tables above cover direct dependencies. Each one brings its own dependencies, under their own licenses. For the full list of an installed copy:

pip install pip-licenses && pip-licenses --from=mixed   # API (in backend/.venv)
npx license-checker --production --summary              # web app (in frontend/)

Hosted services

The production deployment uses Vercel (hosting), Supabase (database and sign-in) and Cloudflare Turnstile (bot check) on their free tiers, under each provider's terms of service. None of them is needed to run the app locally.