pbower commented on issue #5880: URL: https://github.com/apache/arrow-rs/issues/5880#issuecomment-2169078807
Hi @alamb , thanks for coming back to me on this. I've reviewed the Arrow-rs flight client code [here](https://github.com/apache/arrow-rs/blob/master/arrow-flight/src/client.rs) which leans heavily on [tonic::transport::Channel], and is therefore entwined in the socket2 (non-WASM breaking) dependencies. What are your thoughts on the best way to integrate this ? Would it be to replace it with: 1. tonic-web-wasm-client - I think this would mean providing a WASM client target in arrow-flight/src/client.rs , from [here](https://github.com/devashishdxt/tonic-web-wasm-client), so that the client uses that instead of pulling in socket2 transport. 2. A more extreme version like this [Tonic WS Transport](https://github.com/boxdot/tonic-ws-transport/). I say extreme, as it uses a Web Socket, and therefore is at odds with typical grpc-Web, but has the advantage that bidirectional streaming is supported, but then would likely need the server to talk to the same protocol, therefore I'd say probably not. I'm also not 100% clear on the benefit compared to a standard WebSocket, but it would be cool to have something that works as a 'drop-in' until full bidirectional streaming is supported, given that's still (~12 months away)[https://github.com/grpc/grpc-web/issues/24] using the natural grpc-web architecture (browser, envoy proxy, grpc-server). Appreciate your thoughts and expertise. Is there a simpler route? Thanks -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
