Hi,
Jan is not back just yet but I believe I can largely answer your questions:
1) gRPC C# does not support using Cronet as the underlying transport (at least, I could not find any API in the C# implementation for enabling Cronet, which I'm pretty sure would be a pre-requisite). I'm not aware of all the architectural details of how C# is built on top of gRPC core, but I think it should be possible to wrap the Cronet transport and expose an API to use it via C# (caveat: this has worked for other languages, but there could be blockers for doing so in C#) . I suggest filing a feature request for Cronet with C# support at
github.com/grpc/grpc.
2) Technically you could implement your own transport based on a UDP client, but I'm pretty sure the core APIs for this are not considered public/stable, meaning that they are intended for the interaction between core and the wrapped languages and could potentially change. I would expect this approach to be a significant amount of work requiring detailed knowledge of some gRPC internals. If you do choose to go this route, I would suggest starting another email thread to discuss whether/how it's advised for gRPC users to actually rely on the transport API (I don't primarily work on core so not sure about best practices here).
3) The http/2 client inside of gRPC core is not exposed for use without the RPC layer.
Best,
Eric