No worries about questions, it's always good to see how people are using Arrow.

For tunneling Flight/gRPC over HTTP: this has been a long-standing question. I 
believe some people have had success with one of the various gRPC-HTTP proxies. 
In particular, I recall Deephaven has done this successfully (with some 
workaround for the lack of streaming methods). If Nate is around, maybe he can 
describe what they've done.

There's also an ongoing effort to enable alternative transports in Flight [1], 
which would let us implement (say) a native WebSocket transport.

For these methods specifically: they basically wrap Protobuf 
SerializeToString/ParseFromString so you could use them to try to implement 
your own protocol using HTTP, yes.

[1]: https://github.com/apache/arrow/pull/12465

-David

On Mon, Mar 7, 2022, at 09:24, Gavin Ray wrote:
> Due to the current implementation status of FlightSQL (C++/Rust/JVM only)
>
> I am trying to see whether it's possible to allow FlightSQL over something
> like HTTP/REST so that arbitrary languages can be used.
>
> In the codebase, I saw these (and their deserialize counterparts):
>
>   /// \brief Get the wire-format representation of this type.
>   /// Useful when interoperating with non-Flight systems (e.g. REST
>   /// services) that may want to return Flight types.
>   arrow::Result<std::string> SerializeToString() const;
>
>   /**
>    * Get the serialized form of this protocol message.
>    * <p>Intended to help interoperability by allowing non-Flight services
> to still return Flight types.
>    */
>   public ByteBuffer serialize() {
>     return ByteBuffer.wrap(toProtocol().toByteArray());
>   }
>
> I know this is probably very low-priority at the moment, but just wanted to
> ask about whether it's even possible.
> Thank you, and sorry for spamming the mailing list with so many questions
> lately =)

Reply via email to