Joe Tsai
Joe Tsai
In this logic: https://github.com/dsnet/udptunnel/blob/f0061804a690179a044286f40ab715b4c96e98ab/tunnel.go#L131 We try to resolve the remote address at start-up. However, if the network is not initialized yet, then it is possible that this returns an error...
On go1.19, A blank import of "errors" increases the binary size by ~15.5KiB due to the transitive dependency on `reflectlite`. The hard dependency occurs because of the program initialize variable...
RFC3339 is the most common format to use ([according to prior analysis](https://github.com/golang/go/issues/52746#issue-1228127086), it accounts for 57% of formats; and that's only explicit calls to `Format` or `Parse`. It doesn't cover...
In Go 1.19, the reflect.Value.MapRange method uses "function outlining" so that the allocation of reflect.MapIter is inlinable by the caller. If the iterator doesn't escape the caller, it can be...
The "single-segment" mode encodes the expected uncompressed size in the zstd frame, which the server can use as an optimization. Also, add a new Config.CompressTransport flag. Compression is an implementation...
Error handling is tedious, and when writing tests we are prioritizing getting the test written quickly rather than necessarily making it the most robust piece of code we ever wrote....
The `protodesc` package provides the ability to go from a [`descriptorpb.FileDescriptorSet` to a `protoregistry.Files`](https://pkg.go.dev/google.golang.org/protobuf/reflect/protodesc#NewFiles). However, the latter type is still not useful to use with most of the `protobuf` module...
JSON serialization is very commonly used in HTTP servers where use of `net/http` means that the user typically starts with a `io.Reader` and `io.Writer` on hand. As such, it is...
The `MessageState` type, which is nested in every generated message [has a pointer to the `MessageInfo`](https://github.com/protocolbuffers/protobuf-go/blob/21e33cc91079beb975323466e237f2486ea29c10/internal/impl/message_reflect.go#L365), which itself has a reference to the [message descriptor for that message](https://github.com/protocolbuffers/protobuf-go/blob/21e33cc91079beb975323466e237f2486ea29c10/internal/impl/message.go#L32). Thus, deeply...
Generated messages have mutexes and other variables that make it dangerous to shallow copy. Add a function to the `proto` package that does the equivalent of a shallow copy in...