Skip to content

release: OxyRoute 0.5.0 - #138

Merged
ZhuchkaTriplesix merged 42 commits into
mainfrom
dev
Jul 20, 2026
Merged

release: OxyRoute 0.5.0#138
ZhuchkaTriplesix merged 42 commits into
mainfrom
dev

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • Cut 0.5.0 from dev into main (version bumps + CHANGELOG + docs from chore(release): prepare OxyRoute 0.5.0 #137)
  • Includes OpenAPI docs UI, Granian lifespan, TestClient, middleware, hot-path/perf work, and related features since 0.4.0

After merge

Tag and push to publish to PyPI:

git fetch origin && git checkout main && git pull origin main
git tag -a v0.5.0 -m "OxyRoute 0.5.0"
git push origin v0.5.0

Confirm .github/workflows/release-pypi.yml succeeds.

Test plan

  • CI green on this PR
  • Versions are 0.5.0 on main after merge
  • Tag v0.5.0 triggers PyPI release

ZhuchkaTriplesix and others added 30 commits June 21, 2026 11:38
feat: implement global exception handlers for sync and async routes (#99)
Implements #100 by passing body_model down to Rust and validating the JSON body via Pydantic model_validate at runtime. Validation errors produce a 422 response.
feat(validation): runtime body_model validation with 422 errors
feat(request): introduce typed Request object with lazy headers
feat(testing): ship oxyroute.testing.TestClient
feat(streaming): generic stream responses (generators) for non-SSE chunks
feat(static): add StaticFiles and App.mount
feat(observability): request id, access log, metrics hooks
perf(router): avoid path-param allocs on fast paths
perf(openapi): cache serialized string
Ship Scalar/Swagger at /docs, OpenAPI {param} paths with parameters and
bearerAuth, tags/info/servers hooks, and sync __rsgi_init__(loop) via
on_startup so Granian actually runs worker startup. Closes #130.
ZhuchkaTriplesix and others added 12 commits July 20, 2026 13:25
feat(openapi): first-class docs UI and OpenAPI enrichment
Build JWT verification state once at add_route and reuse Arc handles on
the hot path instead of reconstructing Validation/DecodingKey per request.
Closes #109.
perf(jwt): prebuild DecodingKey and Validation per route
Check for Origin in Rust before calling response_header_pairs so
same-origin / API-only traffic avoids a Python roundtrip. Closes #108.
perf(cors): skip Python CORS merge when Origin is absent
Add cargo bench hot_path (match/map/json), multi-route wrk scenarios,
docs for baselines, and an opt-in perf-smoke workflow. Closes #110.
test(perf): Criterion microbenches and wrk scenarios
Remove IDE Cursor rules from the repo, ignore .cursor/, and point
AGENTS.md at docs/development-workflow.md instead.
chore: remove .cursor from the repository
Bump package versions and document the 0.5.0 changelog (OpenAPI docs UI,
lifespan, TestClient, middleware, perf, and related work since 0.4.0).
chore(release): prepare OxyRoute 0.5.0
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit 0be1e7d into main Jul 20, 2026
32 checks passed
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