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

Releases: connectrpc/connect-python

v0.10.1

29 May 02:18
@anuraaga anuraaga
fa120f6
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

This is a small release with a bugfix to content-type matching, and reordering of parameters for GET requests to improve performance of HTTP caches.

📈 Enhancements

  • Update unary-get query parameter to match spec ordering by @oliversun9 in #250

🛠️ Bug fixes

  • Ignore content type parameters when matching it by @anuraaga in #235

New Contributors

Full Changelog: v0.10.0...v0.10.1

Contributors

anuraaga and oliversun9
Assets 9
Loading

connectrpc-otel/v0.1.1

08 May 01:55
@anuraaga anuraaga
3189d1d
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

This is a small update to connectrpc-otel to add a missing py.typed file to reflect it is already fully type annotated. There are no other changes.

New Contributors

Full Changelog: v0.10.0...connectrpc-otel/v0.1.1

Contributors

jeffsawatzky
Loading

v0.10.0

28 Apr 16:05
@stefanvanburen stefanvanburen
c195043
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

☢️ Breaking changes

Pass a Codec instead of proto_json=True to use JSON encoding

The proto_json bool has been replaced by a codec parameter. If you were using the default (proto_json=False), no change is needed — binary protobuf remains the default. If you were opting into JSON encoding:

Before:

async with GreeterClient("http://localhost", proto_json=True) as client:
 ...

After:

from connectrpc.codec import proto_json_codec
async with GreeterClient("http://localhost", codec=proto_json_codec()) as client:
 ...

The new codec parameter accepts any object implementing the Codec protocol, enabling custom encoding strategies — for example, a ProtoJSONCodec subclass with custom marshaling options.

What's Changed

  • Allow customization of server and client codecs by @anuraaga in #192
  • Allow generating only async or sync code by @anuraaga in #214
  • Surface non-Connect handler exceptions to user by @anuraaga in #219

Full Changelog: v0.9.0...v0.10.0

Contributors

anuraaga
Loading

connectrpc-otel v0.1.0

30 Mar 01:02
@anuraaga anuraaga
a4fff71
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

This is the first release of connectrpc-otel, a package with OpenTelemetry instrumentation for Connect-Python.

Users of OpenTelemetry auto-instrumentation can just add the package as a dependency and will have instrumentation enabled automatically. For more usage instructions, check out the documentation.

Loading
BaronBonet reacted with hooray emoji
1 person reacted

v0.9.0

19 Mar 02:39
@anuraaga anuraaga
fd83a6f
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

BREAKING CHANGE: PyPI package renamed to connectrpc

This is the last version published as the connect-python package - we have 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. Make sure to update your dependency specifications to connectrpc to continue to receive updates. Sorry for the churn as we get closer to a stable state.


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

  • Process GET params for empty request messages by @Zaczero in #121
  • Fix server streaming handler not cancelled on client disconnect by @stefanvanburen in #175

New Contributors

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

Contributors

anuraaga, stefanvanburen, and Zaczero
Loading
americaamericaamerica, i2y, and ekzhang reacted with thumbs up emoji
3 people reacted

v0.8.1

27 Jan 04:58
@anuraaga anuraaga
988f927
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

This hotfix fixes the default compression level used with gzip, which previously was set too high causing performance issues.

🛠️ Bug fixes

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas

@Zaczero

Full Changelog: v0.8.0...v0.8.1

Contributors

anuraaga and Zaczero
Loading
li1234yun reacted with thumbs up emoji
1 person reacted

v0.8.0

23 Jan 01:01
@anuraaga anuraaga
3b6f3ce
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

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

Contributors

anuraaga
Loading
li1234yun reacted with thumbs up emoji
1 person reacted

v0.7.1

10 Jan 04:26
@anuraaga anuraaga
8eb592a
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

This release fixes a conflict preventing using this library along with grpc-python, possibly from dependencies.

🛠️ Bug fixes

  • Use custom package for grpc status.proto by @anuraaga in #76

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas

@gibsondan

Full Changelog: v0.7.0...v0.7.1

Contributors

anuraaga and gibsondan
Loading

v0.7.0

26 Dec 09:34
@anuraaga anuraaga
3c248d5
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

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

@achille-roussel

Full Changelog: v0.6.0...v0.7.0

Contributors

anuraaga and achille-roussel
Loading
i2y, AkanshDivker, and li1234yun reacted with hooray emoji i2y, AkanshDivker, and li1234yun reacted with rocket emoji
3 people reacted

v0.6.0

08 Dec 04:44
@anuraaga anuraaga
ee84148
This commit was created on GitHub.com and signed with GitHub’s verified signature.
GPG key ID: B5690EEEBB952194
Verified
Learn about vigilant mode.

Choose a tag to compare

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

  • Do multiple reads for WSGI even with content length by @anuraaga in #37

🙇 Thank you

This release was possible thanks to the following contributors who shared their brilliant ideas

@maaft
@rockwotj

Full Changelog: v0.5.0...v0.6.0

Contributors

anuraaga, maaft, and rockwotj
Loading
i2y reacted with rocket emoji
1 person reacted
Previous 1
Previous

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