Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

v0.9.0 #176

Mar 19, 2026 · 0 comments
Discussion options

BREAKING CHANGE: PyPI package renamed to connectrpc

This is the last version being published as the connect-python package - we are migrated to connectrpc as part of this release to match the same code you write with it and will only publish future versions to connectrpc. We will update these release notes after it's complete, and them make sure to update your dependency specifications to connectrpc.


This release includes a significant rework to compression handling - now, it is possible to implement custom compression methods or configure defaults with custom parameters. This release also allows configuring the supported compression methods for a server rather than automatically inspecting from application dependencies. Defaults now match other Connect implementations, only enabling gzip by default.

We have also added some other small enhancements like gRPC-Web support and improved debugging.

☢️ Breaking changes

Pass compressions rather than strings when configuring the client

Before:

GreeterClient("http://localhost", accept_compressions=["zstd", "br", "gzip"])

After:

from connectrpc.compression.brotli import BrotliCompression
from connectrpc.compression.gzip import GzipCompression
from connectrpc.compression.zstd import ZstdCompression
GreeterClient("http://localhost", accept_compressions=[
 ZstdCompression(), BrotliCompression(), GzipCompression()
])

To configure a client to use gRPC protocol, pass protocol=ProtocolType.GRPC instead of grpc=True

Before:

GreeterClient("http://localhost", grpc=True)

After:

from connectrpc.protocol import ProtocolType
GreeterClient("http://localhost", protocol=ProtocolType.GRPC)

Metadata interceptors now accept Error | None in on_end

Before:

class MyInterceptor:
 def on_end(self, token, ctx):
 ...

After:

class MyInterceptor:
 def on_end(self, token, ctx, error):
 ...

📈 Enhancements

🛠️ Bug fixes

New Contributors

Full Changelog: v0.8.1...v0.9.0


This discussion was created from the release v0.9.0.
You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /