Currently ALPN protocols are configured in both ClientConfig and ServerConfig. For clients that would like to reuse the ClientConfig across different protocols (such as a DNS resolver), this is a little inconvenient because one ClientConfig per protocol is needed. In terms of the underlying work to be done, I think it would be straightforward to make alpn_protocols more like server_name, only on the client side.