Releases: RUSTxPY/BustAPI
Releases · RUSTxPY/BustAPI
BustAPI v0.11.0
Release Candidate Finalization
- Promoted 0.11.0-rc2 to full 0.11.0 release.
- Hardened worker process cleanup by sending
SIGKILLto force process exit on shutdown, bypassing execution stalls within the compiled Rust codebase. - Added omitted dependencies (
psutil,pytest-asyncio,anyio) to GitHub Action multi-platform testing workflows. - Renamed internal
TestClientutility toBustTestClientto prevent inadvertent PyTest test collection warnings.
Full Changelog: v0.10.3...v0.11.0
v0.11.0-rc2
[0.11.0-rc2] - 2026-04-07
Fixed
- Multiprocessing Stability (#24):
- Fixed a critical
TypeError: cannot pickle 'builtins.PyBustApp' objectwhen spawning workers on Linux in environments wherespawnorforkserveris used (e.g., Python 3.14). - Forced the
forkstart method for internal worker spawning on Linux to ensure complex Rust state is shared correctly via memory cloning. - Improved process cleanup and signal propagation; workers now terminate reliably when the parent process receives
SIGINTorSIGTERM.
- Fixed a critical
Added
- Stability Test Suite:
- Added
tests/test_multiprocess_stability.pyto verify multiprocessing robustness across various scenarios (start methods, signal handling, route inheritance). - Verified compatibility with modern Python package managers using
uv.
- Added
v0.11.0-rc-1
Full Changelog: v0.10.3...v0.11.0-rc
v0.10.3
[0.10.3] - 2026-02-14
Fixed
-
Request Parameter Injection (#22):
- Fixed route handlers not receiving the
requestparameter when declared in their signature. - Added automatic request parameter injection in both sync and async wrapper functions.
- JWT authentication endpoints now work correctly with request-dependent handlers.
- Fixed route handlers not receiving the
-
Blueprint JWT Support (#23):
- Improved error message when JWT is not initialized, with specific guidance for Blueprint usage.
- Added comprehensive example (
examples/routing/blueprint_with_jwt.py) showing correct JWT + Blueprint pattern. - Clarified that JWT must be initialized on the main app, not in blueprint files.