-
PyServeX v0.9.10
StableSome checks failedRun Tests / test (3.12) (push) Successful in 2m39sRun Tests / test (3.13) (push) Successful in 2m31sCI/CD Pipeline / lint (push) Successful in 0sBuild and Release / build (push) Successful in 36sCI/CD Pipeline / test (push) Has been skippedCI/CD Pipeline / build-and-release (push) Has been skippedBuild and Release / release (push) Successful in 6sCI/CD Pipeline / notify (push) Successful in 1sLint Code / lint (push) Failing after 40sreleased this
2025-12-03 22:39:19 +00:00 | 6 commits to main since this releaseRelease v0.9.10
What's new in this version
New Features
- Process Orchestration — run ASGI/WSGI apps in isolated subprocesses with health monitoring and auto-restart
- Dynamic Port Allocation — automatic port assignment from configurable range (9000-9999)
- Multi-worker Support — configure number of workers per application
- Health Checks — automatic health monitoring with configurable interval, timeout, and retries
- Auto-restart with Backoff — failed processes restart automatically with exponential backoff
- WSGI Support — Flask/Django apps wrapped via a2wsgi for uvicorn compatibility
- Request ID Tracing —
X-Request-IDheader propagated through all proxied requests - Configurable Logging — control httpx verbosity, proxy logs, and health check logs
Bug Fixes
- Fixed extension ordering for proper request routing
- Fixed mypy type errors in WSGI wrapper module
Technical Changes
- New
process_manager.pymodule for subprocess lifecycle management - New
process_extension.pywith httpx-based reverse proxy - New
_wsgi_wrapper.pyfor WSGI-to-ASGI conversion - Async extension loading via lifespan context manager
- Structured logging with latency measurement for proxied requests
- 34 new tests for process orchestration
Dependencies
- Added
a2wsgias optional dependency for WSGI support
Full Changelog: https://git.pyserve.org/Shifty/pyserveX/compare/v0.5.0...v0.9.10
Installation
pip install pyserve==0.9.10Usage
pyserve --helpDownloads
-
PyServeX v0.9.1
StableAll checks were successfulBuild and Release / release (push) Successful in 5sCI/CD Pipeline / build-and-release (push) Has been skippedCI/CD Pipeline / notify (push) Successful in 1sLint Code / lint (push) Successful in 40sRun Tests / test (3.12) (push) Successful in 1m3sRun Tests / test (3.13) (push) Successful in 1m4sCI/CD Pipeline / lint (push) Successful in 0sBuild and Release / build (push) Successful in 37sCI/CD Pipeline / test (push) Has been skippedreleased this
2025-12-03 10:06:28 +00:00 | 10 commits to main since this releaseWhat's new in this version
Bug Fixes
- Fixed linting issues in CI/CD
Full Changelog: https://git.pyserve.org/Shifty/pyserveX/compare/v0.5.0...v0.9.1
Installation
pip install pyserve==v0.9.1Usage
pyserve --helpDownloads
-
PyServeX v0.9.0
StableSome checks failedRun Tests / test (3.12) (push) Successful in 1m10sRun Tests / test (3.13) (push) Successful in 1m9sCI/CD Pipeline / lint (push) Successful in 0sBuild and Release / build (push) Successful in 41sCI/CD Pipeline / test (push) Has been skippedCI/CD Pipeline / build-and-release (push) Has been skippedBuild and Release / release (push) Successful in 5sCI/CD Pipeline / notify (push) Successful in 1sLint Code / lint (push) Failing after 38sreleased this
2025-12-03 09:59:50 +00:00 | 12 commits to main since this releaseWhat's new in this version
New Features
- Cython Path Matcher: Added high-performance Cython module for path matching operations
FastMountedPathclass for optimized ASGI mount path matchingFastMountManagerfor efficient mount lookup with longest-prefix matching- Utility functions:
path_matches_prefix,strip_path_prefix,match_and_modify_path - Performance improvement: 1.5x-7.5x faster path matching operations
- Automatic fallback to pure Python implementation if Cython is not available
Bug Fixes
- Fixed mypy type checking for optional dependencies (a2wsgi, asgiref, django)
Technical Changes
- New build system for Cython extensions (
scripts/build_cython.py) - Updated Makefile with new commands:
make build-cython- Build Cython extensions onlymake benchmark- Run performance benchmarks
- Clean command now removes Cython artifacts (*.c, *.so, *.pyd, *.html)
- Lint and format commands exclude
.pyxfiles - Added comprehensive test suite for path matcher (28 tests)
- Added benchmark suite in
benchmarks/bench_path_matcher.py
Dependencies
- Added
cython>=3.0.0to dev dependencies - Added
setuptools>=80.0.0to dev dependencies - Updated build-system requires in pyproject.toml
Full Changelog: https://git.pyserve.org/Shifty/pyserveX/compare/v0.8.0...v0.9.0
Installation
pip install pyserve==0.9.0Usage
pyserve --helpBuilding with Cython (Optional)
For maximum performance, build the Cython extensions:
make build-cythonOr manually:
python scripts/build_cython.py build_ext --inplaceBenchmark Results
Operation Pure Python Cython Speedup Single path match ~130 ns ~70 ns 1.9x Mount manager lookup (10 mounts) ~660 ns ~200 ns 3.3x No match (fast fail) ~660 ns ~90 ns 7.5x Downloads
- Cython Path Matcher: Added high-performance Cython module for path matching operations
-
PyServeX v0.7.1
StableAll checks were successfulCI/CD Pipeline / lint (push) Successful in 0sCI/CD Pipeline / test (push) Has been skippedCI/CD Pipeline / build-and-release (push) Has been skippedCI/CD Pipeline / notify (push) Successful in 0sLint Code / lint (push) Successful in 42sBuild and Release / build (push) Successful in 31sBuild and Release / release (push) Successful in 5sRun Tests / test (3.12) (push) Successful in 1m0sRun Tests / test (3.13) (push) Successful in 59sreleased this
2025-12-03 08:49:32 +00:00 | 18 commits to main since this releaseWhat's new in this version
Bug Fixes
- Fixed index file search if path in config IS directory on host
# If path is a directory, look for index file if file_path.is_dir(): index_file = config.get("index_file", "index.html") file_path = file_path / index_file
Full Changelog: https://gitea.example.com/Shifty/pyserveX/compare/v0.5.0...v0.7.1
Installation
pip install pyserve==v0.7.1Usage
pyserve --helpDownloads
-
PyServeX v0.7.0
StableAll checks were successfulLint Code / lint (push) Successful in 49sRun Tests / test (3.12) (push) Successful in 1m1sRun Tests / test (3.13) (push) Successful in 58sCI/CD Pipeline / lint (push) Successful in 0sBuild and Release / build (push) Successful in 32sCI/CD Pipeline / test (push) Has been skippedCI/CD Pipeline / build-and-release (push) Has been skippedBuild and Release / release (push) Successful in 8sCI/CD Pipeline / notify (push) Successful in 1sreleased this
2025-12-02 21:09:13 +00:00 | 22 commits to main since this releaseWhat's new in this version
New Features
- Implemented and tested Reverse Proxy!
Bug Fixes
- Add description of bug fixes
Technical Changes
- Add description of technical improvements
Dependencies
- added httpx
- added pytest-asyncio in dev dependencies
Full Changelog: https://gitea.example.com/Shifty/pyserveX/compare/v0.5.0...v0.7.0
Installation
pip install pyserve==v0.7.0Usage
pyserve --helpDownloads
-
PyServe v0.6.0
StableAll checks were successfulRun Tests / test (3.12) (push) Successful in 37sRun Tests / test (3.13) (push) Successful in 34sCI/CD Pipeline / lint (push) Successful in 0sBuild and Release / build (push) Successful in 34sCI/CD Pipeline / test (push) Has been skippedBuild and Release / release (push) Successful in 9sCI/CD Pipeline / build-and-release (push) Has been skippedCI/CD Pipeline / notify (push) Successful in 0sLint Code / lint (push) Successful in 52sreleased this
2025-09-02 21:37:24 +00:00 | 24 commits to main since this releaseWhat's new in this version
New Features
- Completely rewritten HTTP server backend using industry-standard uvicorn and starlette
Bug Fixes
- Improved server stability and reliability through proven frameworks
Technical Changes
- Replaced custom HTTP implementation with uvicorn ASGI server and starlette framework
- Enhanced logging system using structlog for better structured output and debugging
Dependencies
- Added uvicorn and starlette as core dependencies
- Added structlog for improved logging capabilities
- Updated dependencies to latest versions
Installation
pip install pyserve==v0.6.0Usage
pyserve --helpDownloads