package experimental
import "google.golang.org/grpc/experimental"
Package experimental is a collection of experimental features that might have some rough edges to them. Housing experimental features in this package results in a user accessing these APIs as `experimental.Foo`, thereby making it explicit that the feature is experimental and using them in production code is at their own risk.
All APIs in this package are experimental.
Index ¶
- func AcceptCompressors(names ...string) grpc.CallOption
- func BufferPool(bufferPool mem.BufferPool) grpc.ServerOption
- func SetDefaultBufferPool(bufferPool mem.BufferPool)
- func WithBufferPool(bufferPool mem.BufferPool) grpc.DialOption
Functions ¶
func AcceptCompressors ¶
func AcceptCompressors(names ...string) grpc.CallOption
AcceptCompressors returns a CallOption that limits the values advertised in the grpc-accept-encoding header for the provided RPC. The supplied names must correspond to compressors registered via encoding.RegisterCompressor. Passing no names advertises "identity" (no compression) only.
func BufferPool ¶
func BufferPool(bufferPool mem.BufferPool) grpc.ServerOption
BufferPool returns a grpc.ServerOption that configures the server to use the provided buffer pool for parsing incoming messages and for temporary buffers when marshaling outgoing messages. By default, mem.DefaultBufferPool is used, and this option only exists to provide alternative buffer pool implementations to the server, such as more optimized size allocations etc. However, the default buffer pool is already tuned to account for many different use-cases.
Note: The following options will interfere with the buffer pool because they require a fully materialized buffer instead of a sequence of buffers: EnableTracing, and binary logging. In such cases, materializing the buffer will generate a lot of garbage, reducing the overall benefit from using a pool.
func SetDefaultBufferPool ¶
func SetDefaultBufferPool(bufferPool mem.BufferPool)
SetDefaultBufferPool sets the default buffer pool used by all grpc clients and servers that do not have a buffer pool configured via WithBufferPool or BufferPool. It also changes the buffer pool used by the proto codec, which can't be changed otherwise. The provided buffer pool must be non-nil. The default value is mem.DefaultBufferPool.
NOTE: this function must only be called during initialization time (i.e. in an init() function), and is not thread-safe. The last caller wins.
func WithBufferPool ¶
func WithBufferPool(bufferPool mem.BufferPool) grpc.DialOption
WithBufferPool returns a grpc.DialOption that configures the use of bufferPool for parsing incoming messages on a grpc.ClientConn, and for temporary buffers when marshaling outgoing messages. By default, mem.DefaultBufferPool is used, and this option only exists to provide alternative buffer pool implementations to the client, such as more optimized size allocations etc. However, the default buffer pool is already tuned to account for many different use-cases.
Note: The following options will interfere with the buffer pool because they require a fully materialized buffer instead of a sequence of buffers: EnableTracing, and binary logging. In such cases, materializing the buffer will generate a lot of garbage, reducing the overall benefit from using a pool.
Source Files ¶
experimental.go
Directories ¶
| Path | Synopsis |
|---|---|
| experimental/credentials | Package credentials provides experimental TLS credentials. |
| experimental/credentials/internal | Package internal defines APIs for parsing SPIFFE ID. |
| experimental/opentelemetry | Package opentelemetry is EXPERIMENTAL and will be moved to stats/opentelemetry package in a later release. |
| experimental/stats | Package stats contains experimental metrics/stats API's. |
- Version
- v1.80.0-dev
- Published
- Jan 21, 2026
- Platform
- js/wasm
- Imports
- 3 packages
- Last checked
- 1 hour ago –
Tools for package owners.