Releases: connectrpc/connect-python
v0.8.0
This is a big release - the client now supports bidirectional streaming and the gRPC protocol. With this, connect-python is now a full-featured Connect implementation!
This is enabled by switching our HTTP client transport to pyqwest, a Python interface to the Rust HTTP client reqwest. This client supports all features of HTTP, allowing us to also support bidirectional streaming and gRPC (via HTTP trailers) in turn.
Keep in mind though that this is a very new project, built specifically to push connect-python forward. The underlying reqwest library has been in use for some time and should be battle-tested, but the Python wrapper is new - let us know if you run into any issues so we can fix them.
☢️ Breaking changes
- The HTTP transport for clients has been changed to pyqwest. If you created connect clients with default parameters, this will not need any further changes, but if passing a custom session, you will now need to pass a pyqwest client.
Before:
ctx = ssl.create_default_context(cafile="ca.path")
async with (
httpx.AsyncClient(verify=ctx, http2=True) as session,
GreeterClient("http://localhost", session=session) as client:
)After:
async with (
pyqwest.HTTPTransport(
tls_ca_cert=Path("ca.path").read(),
http_version=pyqwest.HTTPVersion.HTTP2
) as transport,
GreeterClient("http://localhost", http_client=pyqwest.Client(transport)
)If you have unit tests using httpx.ASGITransport / httpx.WSGITransport, you also will need to migrate to pyqwest.testing.ASGITransport / pyqwest.testing.WSGITransport.
📈 Enhancements
🛠️ Bug fixes
- Avoid yielding messages on GeneratorExit in sync server by @anuraaga in #90
- Drain request body in all error cases in WSGI by @anuraaga in #94
Full Changelog: v0.7.1...v0.8.0
v0.7.1
This release fixes a conflict preventing using this library along with grpc-python, possibly from dependencies.
🛠️ Bug fixes
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas
Full Changelog: v0.7.0...v0.7.1
v0.7.0
This release includes initial support for the gRPC protocol in connect-python. It is currently only supported on the server side and requires using pyvoy for its support for HTTP/2 trailers.
📈 Enhancements
🛠️ Bug fixes
- Set default accept-encoding to compression algorithms supported by the client by @achille-roussel in #71
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas and pull requests
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Since the first release of the current codebase, we have been focused on fleshing out docs and our conformance testing suite. We hope to have the new docs out on connectrpc.com soon so it's even easier to get started. Feature-wise, we have integration with ASGI lifespan to allow declaring async initialization logic and some improvement to the WSGI implementation.
📈 Enhancements
🛠️ Bug fixes
🙇 Thank you
This release was possible thanks to the following contributors who shared their brilliant ideas
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
- Fix: Add workdir to goreleaser action for protoc-gen-connect-python build by @i2y in #3
- Switch to "real" dev dependencies by @stefanvanburen in #4
- Fix: Update GitHub environment name to pypi-release in release workflow by @i2y in #5
- Fix badge links and code-workspace filename by @anuraaga in #6
New Contributors
- @i2y made their first contribution in #3
- @stefanvanburen made their first contribution in #4
- @anuraaga made their first contribution in #6
Full Changelog: https://github.com/connectrpc/connect-python/commits/v0.5.0