Skip to content

Issue 47 form bodies - #58

Closed
ZhuchkaTriplesix wants to merge 10 commits into
mainfrom
issue-47-form-bodies
Closed

ZhuchkaTriplesix wants to merge 10 commits into
mainfrom
issue-47-form-bodies

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • What this PR does (1–3 sentences).
  • If it closes a ticket: Closes #N (replace N).

Base branch

  • This PR targets dev, not main (unless maintainers asked for a hotfix).

Checklist

  • cargo build (and cargo clippy if you touched Rust)
  • maturin develop + tests as in docs/development.md (e.g. pytest from a clean cwd / installed wheel)
  • No unrelated drive-by refactors; commits are atomic and scoped

Note on .github/ISSUE_BACKLOG/

If you only touch issue template files under .github/ISSUE_BACKLOG/ (not application code), say so in the summary. Prefer a separate PR for backlog-only edits when possible.

ZhuchkaTriplesix and others added 10 commits April 26, 2026 22:45
- Cursor rule: ordered steps including read issue, CI parity before push
- development-workflow: checklist; fix ci workflow link
- CONTRIBUTING: sync dev first, linters, pointer to workflow
- Add CompiledRouters (Arc) cloned from per-method matchit tables at freeze
- match_route and methods_matching_path use snapshot when set; mutex path before freeze
- Unit tests for match parity and methods_matching_path
Closes #4
…afe deadlock

- Run handle_rsgi via run_in_executor + asyncio.run on a worker loop; main ASGI
  loop remains free to drain run_coroutine_threadsafe from the RSGI protocol.
- Add 50-concurrent-GET stress test (httpx ASGITransport).
- Document bridge behavior and uvicorn single-worker note in docs/asgi.md.

Closes #17
fix(asgi): run handle_rsgi in executor to avoid run_coroutine_threads…
- Expose types.SimpleNamespace on App.state; document in class docstring and rsgi.md
- rsgi_lifespan_app: ThreadPoolExecutor + asyncio.Semaphore, safe shutdown in __rsgi_del__
- test: app.state is a mutable SimpleNamespace; refresh feature.md and PRIORITIES

Closes #18
feat(app): add per-process app.state; expand lifespan example (#18)
- Route flag read_form_body; inject form (dict) and files (list of part dicts)
- Parse with form_urlencoded crate and multer; 400/415 on bad input; 413 when
  body exceeds OXYROUTE_MAX_BODY_BYTES (default 8 MiB; 0 disables)
- Mutual exclusion with read_json_body in Rust and app._route
- Tests: httpx ASGI urlencoded, multipart upload, oversize 413
- docs/handlers.md + feature.md; PRIORITIES marks #47 done

Closes #47
@ZhuchkaTriplesix ZhuchkaTriplesix added this to the v0.2.0 milestone Apr 26, 2026
@ZhuchkaTriplesix ZhuchkaTriplesix self-assigned this Apr 26, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix marked this pull request as draft April 26, 2026 20:24
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