package grpcutil

import "google.golang.org/grpc/internal/grpcutil"

Package grpcutil provides utility functions used across the gRPC codebase.

Index

Variables

var RegisteredCompressorNames []string

RegisteredCompressorNames holds names of the registered compressors.

Functions

func ContentSubtype

func ContentSubtype(contentType string) (string, bool)

ContentSubtype returns the content-subtype for the given content-type. The given content-type must be a valid content-type that starts with "application/grpc". A content-subtype will follow "application/grpc" after a "+" or ";". See https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for more details.

If contentType is not a valid content-type for gRPC, the boolean will be false, otherwise true. If content-type == "application/grpc", "application/grpc+", or "application/grpc;", the boolean will be true, but no content-subtype will be returned.

contentType is assumed to be lowercase already.

func ContentType

func ContentType(contentSubtype string) string

ContentType builds full content type with the given sub-type.

contentSubtype is assumed to be lowercase

func EncodeDuration

func EncodeDuration(t time.Duration) string

EncodeDuration encodes the duration to the format grpc-timeout header accepts.

https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests

func ExtraMetadata

func ExtraMetadata(ctx context.Context) (md metadata.MD, ok bool)

ExtraMetadata returns the incoming metadata in ctx if it exists. The returned MD should not be modified. Writing to it may cause races. Modification should be made to copies of the returned MD.

func FullMatchWithRegex

func FullMatchWithRegex(re *regexp.Regexp, text string) bool

FullMatchWithRegex returns whether the full text matches the regex provided.

func IsCompressorNameRegistered

func IsCompressorNameRegistered(name string) bool

IsCompressorNameRegistered returns true when name is available in registry.

func ParseMethod

func ParseMethod(methodName string) (service, method string, _ error)

ParseMethod splits service and method from the input. It expects format "/service/method".

func RegisteredCompressors

func RegisteredCompressors() string

RegisteredCompressors returns a string of registered compressor names separated by comma.

func WithExtraMetadata

func WithExtraMetadata(ctx context.Context, md metadata.MD) context.Context

WithExtraMetadata creates a new context with incoming md attached.

Source Files

compressor.go encode_duration.go grpcutil.go metadata.go method.go regex.go

Version
v1.70.0 (latest)
Published
Jan 23, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
20 hours ago

Tools for package owners.