blob: 1ed9bb499b352c61c74f33ec79134868d15f29e9 [file] [log] [blame]
khenaidoo7d3c5582021-08-11 18:09:44 -04001// Copyright 2016 Michal Witkowski. All Rights Reserved.
2// See LICENSE for licensing terms.
3
4/*
5Package `metautils` provides convenience functions for dealing with gRPC metadata.MD objects inside
6Context handlers.
7
8While the upstream grpc-go package contains decent functionality (see https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md)
9they are hard to use.
10
11The majority of functions center around the NiceMD, which is a convenience wrapper around metadata.MD. For example
12the following code allows you to easily extract incoming metadata (server handler) and put it into a new client context
13metadata.
14
15 nmd := metautils.ExtractIncoming(serverCtx).Clone(":authorization", ":custom")
16 clientCtx := nmd.Set("x-client-header", "2").Set("x-another", "3").ToOutgoing(ctx)
17*/
18
19package metautils