Skip to content

README: fastapi vs fastapi-startkit comparison#7

Merged
bedus-creation merged 4 commits into
developfrom
fastapi-starkit
Jul 8, 2026
Merged

README: fastapi vs fastapi-startkit comparison#7
bedus-creation merged 4 commits into
developfrom
fastapi-starkit

Conversation

@bedus-creation

Copy link
Copy Markdown

Adds a FastAPI vs FastAPI-StartKit comparison section to the README.

Contents

  • Overview — what each is: raw FastAPI micro-framework vs a batteries-included application framework built on top of FastAPI (providers/config/container).
  • Correctness — both pass the shared .spec/route_spec.rb 6/6 (also confirmed in-container, immune to host-networking artifacts).
  • Setup / depsfastapi-startkit[fastapi]==0.46.0 (pinned in PR Pin fastapi_startkit benchmark to fastapi-startkit==0.46.0 #4) vs fastapi>=0.139,<0.140; both built from the same default .Dockerfile.uvicorn engine; Python 3.13.
  • Performance — cites the Benchmark Runner's controlled, same-host relative comparison verbatim (method + delta table + disclaimer), explicitly flagged as not official benchmark figures.

On accuracy

  • No fabricated numbers. Absolute standard --disable-keepalive figures weren't obtainable on macOS (ephemeral-port / TIME_WAIT exhaustion) — that caveat is stated.
  • The cited relative deltas are honest, not a blanket "on par": GET routes are close (−1.5% to −6.4%) while POST /user shows ~17–19% framework overhead at c64/c256.
  • Version note included: the relative run used fastapi-startkit 0.47.0 (so both sides run FastAPI 0.139), whereas the committed benchmark pins 0.46.0 — the deltas are indicative of framework overhead, not a measurement of the pinned build.

Cover overview, correctness (both pass route_spec.rb 6/6), setup/deps
(fastapi-startkit[fastapi]==0.46.0 pinned, same .Dockerfile.uvicorn
default engine), and performance. Performance cites the Benchmark
Runner's controlled same-host relative comparison verbatim (explicitly
not official figures) with the macOS benchmarking caveat; no fabricated
absolute numbers.
… baseline

Committed benchmark matches the measured stack, so drop the version-mismatch
disclosure and mark the comparison apples-to-apples. Attribute the POST /user
overhead to FastAPI 0.139's include_router keeping a nested _IncludedRouter
(intended behavior, reproducible in plain FastAPI), not startkit per-request code.
Add the upstream FastAPI reference next to the POST /user attribution; framed
as the acknowledged include_router performance discussion that motivated the
0.139 _IncludedRouter design, not as a per-request measurement.
…al claim

Cite the-benchmarker#5343 as a related include_router perf discussion (construction-time) and
explicitly distinguish it from the per-request _IncludedRouter mechanism, rather
than asserting it motivated the 0.139 redesign (unverified).
@bedus-creation bedus-creation merged commit 53919b2 into develop Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant