Documentation ¶
Index ¶
- Variables
- func Chunk(data []byte, chunkSize int) [][]byte
- func ChunkReader(r io.Reader, f func([]byte) error) (int, error)
- func GetBuffer() []byte
- func NewStreamingBytesReader(streamingBytesClient StreamingBytesClient) io.Reader
- func NewStreamingBytesWriter(streamingBytesServer StreamingBytesServer) io.Writer
- func PutBuffer(buf []byte)
- func ScrubGRPC(err error) error
- func Serve(registerFunc func(*grpc.Server), options ServeOptions, serveEnv ServeEnv) (retErr error)
- func WriteFromStreamingBytesClient(streamingBytesClient StreamingBytesClient, writer io.Writer) error
- func WriteToStreamingBytesServer(reader io.Reader, streamingBytesServer StreamingBytesServer) error
- type Dialer
- type ReaderWrapper
- type ServeEnv
- type ServeOptions
- type StreamingBytesClient
- type StreamingBytesServer
Constants ¶
This section is empty.
Variables ¶
var ( // ErrMustSpecifyRegisterFunc is used when a register func is nil. ErrMustSpecifyRegisterFunc = errors.New("must specify registerFunc") )
var (
// MaxMsgSize is used to define the GRPC frame size
MaxMsgSize = 20 * 1024 * 1024
)
Functions ¶
func Chunk ¶ added in v1.4.5
Chunk splits a piece of data up, this is useful for splitting up data that's bigger than MaxMsgSize
func ChunkReader ¶ added in v1.4.6
ChunkReader splits a reader into reasonably sized chunks for the purpose of transmitting the chunks over gRPC. For each chunk, it calls the given function.
func GetBuffer ¶ added in v1.4.6
func GetBuffer() []byte
GetBuffer returns a buffer. The buffer may or may not be freshly allocated, and it may or may not be zero-ed.
func NewStreamingBytesReader ¶ added in v1.3.5
func NewStreamingBytesReader(streamingBytesClient StreamingBytesClient) io.Reader
NewStreamingBytesReader returns an io.Reader for a StreamingBytesClient.
func NewStreamingBytesWriter ¶ added in v1.3.5
func NewStreamingBytesWriter(streamingBytesServer StreamingBytesServer) io.Writer
NewStreamingBytesWriter returns an io.Writer for a StreamingBytesServer.
func PutBuffer ¶ added in v1.4.6
func PutBuffer(buf []byte)
PutBuffer returns the buffer to the pool.
func ScrubGRPC ¶ added in v1.6.0
ScrubGRPC removes GRPC error code information from 'err' if it came from GRPC (and returns it unchanged otherwise)
func Serve ¶ added in v1.3.5
func Serve( registerFunc func(*grpc.Server), options ServeOptions, serveEnv ServeEnv, ) (retErr error)
Serve serves stuff.
func WriteFromStreamingBytesClient ¶ added in v1.3.5
func WriteFromStreamingBytesClient(streamingBytesClient StreamingBytesClient, writer io.Writer) error
WriteFromStreamingBytesClient writes from the StreamingBytesClient to the io.Writer.
func WriteToStreamingBytesServer ¶ added in v1.3.5
func WriteToStreamingBytesServer(reader io.Reader, streamingBytesServer StreamingBytesServer) error
WriteToStreamingBytesServer writes the data from the io.Reader to the StreamingBytesServer.
Types ¶
type Dialer ¶
type Dialer interface { Dial(address string) (*grpc.ClientConn, error) CloseConns() error }
Dialer defines a grpc.ClientConn connection dialer.
type ReaderWrapper ¶ added in v1.6.0
ReaderWrapper wraps a reader for the following reason: Go's io.CopyBuffer has an annoying optimization wherein if the reader has the WriteTo function defined, it doesn't actually use the given buffer. As a result, we might write a large chunk to the gRPC streaming server even though we intend to use a small buffer. Therefore we wrap readers in this wrapper so that only Read is defined.
type ServeEnv ¶ added in v1.3.5
type ServeEnv struct { // Default is 7070. GRPCPort uint16 `env:"GRPC_PORT,default=7070"` }
ServeEnv are environment variables for serving.
type ServeOptions ¶ added in v1.3.5
ServeOptions represent optional fields for serving.
type StreamingBytesClient ¶ added in v1.3.5
type StreamingBytesClient interface {
Recv() (*types.BytesValue, error)
}
StreamingBytesClient represents a client for an rpc method of the form:
rpc Foo(Bar) returns (stream google.protobuf.BytesValue) {}
type StreamingBytesServer ¶ added in v1.3.5
type StreamingBytesServer interface {
Send(bytesValue *types.BytesValue) error
}
StreamingBytesServer represents a server for an rpc method of the form:
rpc Foo(Bar) returns (stream google.protobuf.BytesValue) {}