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]

Reply via email to