| 12345678910111213141516171819202122232425262728293031323334 |
- from __future__ import annotations
- __all__ = ["Compression"]
- from typing import Protocol
- class Compression(Protocol):
- """Protocol for compression methods.
- By default, gzip compression is used. Other compression methods can be
- used by specifying implementations of this protocol. We provide standard
- implementations for:
- - br ([BrotliCompression][connectrpc.compression.brotli.BrotliCompression]) -
- requires the `brotli` dependency.
- - zstd ([ZstdCompression][connectrpc.compression.zstd.ZstdCompression]) -
- requires the `zstandard` dependency.
- """
- def name(self) -> str:
- """Returns the name of the compression method. This value is used in HTTP
- headers to indicate accepted and used compression.
- """
- ...
- def compress(self, data: bytes | bytearray | memoryview) -> bytes:
- """Compress the given data."""
- ...
- def decompress(self, data: bytes | bytearray | memoryview) -> bytes:
- """Decompress the given data."""
- ...
|