Releases: Query-farm/vgi-rpc-python
v0.1.9
What's New
max_stream_response_time for time-based stream batching
Producer stream responses can now buffer multiple batches up to a configurable wall-time limit before emitting a continuation token:
app = make_wsgi_app(
server,
max_stream_response_time=2.0, # buffer up to 2 seconds
)Can be combined with max_stream_response_bytes — the response breaks on whichever limit is reached first.
When neither limit is set, each produce cycle still emits one batch per HTTP response for incremental streaming (unchanged default behavior).
v0.1.8
What's New
--http mode for run_server()
Workers using run_server() can now serve over HTTP with zero code changes by passing CLI flags:
my-worker --http # auto-select port
my-worker --http --port 8080 # fixed port
my-worker --http --host 0.0.0.0 --port 8080 # bind to all interfacesWithout --http, behavior is unchanged (stdin/stdout pipe transport).
serve_http() convenience function
New serve_http() in vgi_rpc.http wraps make_wsgi_app() + waitress with automatic free-port selection:
from vgi_rpc.http import serve_http
from vgi_rpc.rpc import RpcServer
server = RpcServer(MyProtocol, MyImpl())
serve_http(server, host="127.0.0.1", port=0) # prints PORT:<n> to stdoutRequires pip install vgi-rpc[http].
v0.1.7
What's Changed
- Cache-Control headers on GET pages: Landing page and describe page now return
Cache-Control: no-cache, no-store, must-revalidate, max-age=0to prevent browser caching. POST endpoints are unaffected. - Landing page layout: Moved "Powered by vgi-rpc" info from the page body into the footer for a cleaner layout.
v0.1.6
What's Changed
HTTP transport fix
- Add
_DrainRequestMiddlewareto ensure the HTTP request body is fully consumed before the WSGI response is returned. FixesTypeError("Can't read from request stream after response has been sent.")on Cloudflare Workers when error paths (invalid tokens, malformed requests) returned a response without draining the request body.
Full Changelog: v0.1.5...v0.1.6
v0.1.5
What's Changed
UTF-8 safe Arrow IPC metadata
- Base64-encode the binary state token in
vgi_rpc.stream_state#b64metadata to comply with Arrow IPC's UTF-8 requirement for cross-language compatibility. Keys ending in#b64signal that the value is base64-encoded binary data.
HTTP transport improvements
- Add
Accept-Encoding: zstdto HTTP client requests when compression is enabled - Remove unnecessary
_drain_streamcall from HTTP stream exchange
Conformance suite
- Add rich multi-type headers and dynamic schema streams to conformance suite
- Add 5-second per-test timeout to conformance suite and cross-language docs
- Remove pipe-only skip from large data conformance tests
Other
- Add optional Sentry integration for error reporting
- Extract parameter descriptions from docstrings for
__describe__introspection - Fix debug logging on Windows during interpreter shutdown (closed stderr)
Full Changelog: v0.1.4...v0.1.5
v0.1.4
Full Changelog: v0.1.3...v0.1.4
v0.1.3
Full Changelog: v0.1.2...v0.1.3
v0.1.2
Full Changelog: v0.1.1...v0.1.2
v0.1.1
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: https://github.com/Query-farm/vgi-rpc-python/commits/v0.1.0