Leonidas changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 4.13.0 released: https://ocaml.org/releases/4.13.0.html | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
omegatron has quit [Quit: Power is a curious thing.It can be contained, hidden, locked away,and yet it always breaks free.]
Tuplanolla has quit [Ping timeout: 272 seconds]
oriba has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<d_bot_> <mbacarella> what's the grpc story these days?
<d_bot_> <mbacarella> is proxying through envoy the least suffering involved solution still?
<sleepydog> it seems like grpc is possible, but not well paved yet. using some unmerged PRs to ocaml-protoc-plugin
gjvc has quit [Quit: leaving]
bobo has quit [Ping timeout: 252 seconds]
spip has joined #ocaml
namkeleser has joined #ocaml
hackhorn has quit [Quit: Leaving]
<companion_cube> oh?
Haudegen has quit [Ping timeout: 256 seconds]
wyrd has quit [Remote host closed the connection]
wyrd has joined #ocaml
terrorjack has quit [Quit: The Lounge - https://thelounge.chat]
terrorjack has joined #ocaml
namkeleser has quit [Quit: Client closed]
spip has quit [Ping timeout: 252 seconds]
spip has joined #ocaml
mbuf has joined #ocaml
bobo has joined #ocaml
spip has quit [Ping timeout: 250 seconds]
zebrag has quit [Quit: Konversation terminated!]
hackingh- is now known as hackinghorn
hackinghorn has quit [Changing host]
hackinghorn has joined #ocaml
mbuf has quit [Quit: Leaving]
waleee has quit [Ping timeout: 240 seconds]
gravicappa has joined #ocaml
sagax has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
zebrag has quit [Client Quit]
chrisz has quit [Ping timeout: 256 seconds]
chrisz has joined #ocaml
<d_bot_> <quernd> It may be the easiest but note that the Envoy setup doesn't allow streaming. It's possible in pure OCaml though. We've been using this fork of jeffa5's `ocaml-grpc`: https://github.com/dialohq/ocaml-grpc/tree/bugfixes for both server and client bidirectional streaming and so far it's working out well. The `ocaml-protoc-plugin` changes are not strictly necessary, it's a quality of life enhancement.
Serpent7776 has joined #ocaml
spip has joined #ocaml
bobo has quit [Ping timeout: 252 seconds]
namkeleser has joined #ocaml
mro has joined #ocaml
Haudegen has joined #ocaml
Tuplanolla has joined #ocaml
spip has quit [Ping timeout: 252 seconds]
bobo has joined #ocaml
mro has quit [Remote host closed the connection]
gravicappa has quit [Ping timeout: 272 seconds]
spip has joined #ocaml
bobo has quit [Ping timeout: 250 seconds]
mro has joined #ocaml
Anarchos has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
gravicappa has joined #ocaml
Anarchos has joined #ocaml
namkeleser has quit [Quit: Client closed]
mro has quit [Remote host closed the connection]
mro has joined #ocaml
bartholin has joined #ocaml
azimut has quit [Remote host closed the connection]
azimut has joined #ocaml
bartholin has quit [Ping timeout: 252 seconds]
namkeleser has joined #ocaml
Anarchos has quit [Quit: Vision[]: i've been blurred!]
mro has quit [Remote host closed the connection]
bartholin has joined #ocaml
gravicappa has quit [Ping timeout: 252 seconds]
chrisz has quit [Ping timeout: 272 seconds]
chrisz has joined #ocaml
chrisz has quit [Ping timeout: 272 seconds]
chrisz has joined #ocaml
gravicappa has joined #ocaml
farn_ is now known as farn
bartholin has quit [Ping timeout: 256 seconds]
perrierjouet has quit [Quit: WeeChat 3.4]
bartholin has joined #ocaml
perrierjouet has joined #ocaml
bartholin has quit [Ping timeout: 272 seconds]
bartholin has joined #ocaml
zebrag has joined #ocaml
<d_bot_> <mbacarella> seems workable. is there an analog to secure_channel? https://grpc.github.io/grpc/python/grpc.html#grpc.secure_channel
mro has joined #ocaml
Everything has joined #ocaml
mro has quit [Remote host closed the connection]
bobo has joined #ocaml
spip has quit [Ping timeout: 252 seconds]
mro has joined #ocaml
bartholin has quit [Ping timeout: 250 seconds]
mro has quit [Remote host closed the connection]
<d_bot_> <quernd> You can use `H2_lwt_unix.Client.TLS` or `SSL` to create a secure connection, if that's what you mean.
<d_bot_> <mbacarella> i'm not really sure what i mean. grpc is pretty mystifying to me still
adrien_ is now known as adrien
<d_bot_> <quernd> Typically, you'd create one connection and keep it open to do all the RPC requests over it
<d_bot_> <mbacarella> will try it though
<d_bot_> <Anurag> Is GRPC mandatory for your project? You might want to start with a simpler rpc option 🙃
<d_bot_> <mbacarella> sadly yes
<d_bot_> <mbacarella> i would very much like to not be using grpc
<d_bot_> <Anurag> 😅 Goodluck!
<d_bot_> <quernd> Good luck, shout if you run into issues 🙂
bartholin has joined #ocaml
<d_bot_> <mbacarella> > INTERNAL_ERROR (0x2), Failure("Tls not available")
<d_bot_> <mbacarella> I assume I need to opam install tls
<d_bot_> <Anurag> I believe so. I think the error originates in the underlying `gluten` library that probes the system to check whether `ocaml-tls` is installed or not, and fails if you attempt to use the tls transport without installing ocaml-tls
<sleepydog> I don't know what a secure_channel is. It doesn't seem to be part of GRPC, but rather a name chosen for the python api
<sleepydog> http/2 all but requires TLS, so every "channel" (I assume that refers to an http2 stream) should be secure
<d_bot_> <quernd> "channel" is more like a connection, not a stream
<sleepydog> ah, ok. and i guess i was wrong about http2 requiring encryption. sorry for the confusion
<d_bot_> <quernd> It's not required, but browsers enforce it, apparently
waleee has joined #ocaml
<d_bot_> <mbacarella> hmm, when i try Client.TLS instead of just Client instead of getting a read error it just hangs
<d_bot_> <mbacarella> tcpdump does show a connection opens
mro has joined #ocaml
<sleepydog> is there an ssl handshake?
<d_bot_> <mbacarella> there is back and forth
<d_bot_> <mbacarella> might be time for mitmproxy
mro has quit [Remote host closed the connection]
<d_bot_> <mbacarella> oh maybe i shouldn't use ~error_handler:ignore
<d_bot_> <mbacarella> protocol error: PROTOCOL_ERROR (0x1),
<d_bot_> <mbacarella> there we go
<sleepydog> :)
mro has joined #ocaml
<d_bot_> <quernd> That one is very unspecific, unfortunately. I ran into it e.g. when my headers weren't all lowercase
<d_bot_> <mbacarella> am i wrong to be mad at google here
<d_bot_> <mbacarella> anyway. guess i'll have another coffee and start adding prints up and down the stack
<sleepydog> mad over GRPC? or are you talking to a googleapi
<d_bot_> <mbacarella> mad that they kinda threw their weight behind pushing grpc
<d_bot_> <mbacarella> but also coupled it with h2
<sleepydog> i work at google and just resolved a weeks-long customer issue that ended up being caused by contention over the 1 connection Go's GRPC client uses by default. so i'm mad at google too :)
<d_bot_> <mbacarella> right. also go 😠
<d_bot_> <quernd> My guess is it's wrong/missing headers but that's just from experience.
<sleepydog> i think it was a mistake to push a stubby-like protocol without also bringing along its transport (quic)
perrierjouet has quit [Quit: WeeChat 3.4]
<d_bot_> <mbacarella> yeah, fortunately i have a python implementation that works that i can run through mitm proxy and will compare what the ocaml one is doing
<d_bot_> <mbacarella> just, you know, caffeine
<d_bot_> <mbacarella> thanks for the hand-holding. together we'll defeat grpc
perrierjouet has joined #ocaml
mro has quit [Remote host closed the connection]
jlrnick has joined #ocaml
_whitelogger_ has joined #ocaml
_whitelogger has quit [Read error: Connection reset by peer]
<d_bot_> <quernd> Just to elaborate on my previous remark about headers, I have this minimal example of a secure call to grpc-test.sandbox.googleapis.com:443 where it fails with this non-descript `PROTOCOL_ERROR (0x1)` as soon as I leave out a required header or use uppercase. Case in point, for the Google test API you need the `:authority"` header even though generally it's optional
namkeleser has quit [Quit: Client closed]
mrvn has left #ocaml [#ocaml]
bartholin has quit [Ping timeout: 256 seconds]
hannes_ is now known as hannes
mro has joined #ocaml
zebrag has quit [Quit: Konversation terminated!]
zebrag has joined #ocaml
mro has quit [Remote host closed the connection]
bartholin has joined #ocaml
mro has joined #ocaml
mro has quit [Ping timeout: 250 seconds]
mro has joined #ocaml
oriba has joined #ocaml
mro has quit [Remote host closed the connection]
bartholin has quit [Quit: Leaving]
kaph_ has quit [Read error: Connection reset by peer]
Everything has quit [Quit: leaving]
haesbaert has quit [Ping timeout: 250 seconds]
kaph has joined #ocaml
<companion_cube> I've never used it, but twirp seems a lot more reasonable
<companion_cube> just need to modify ocaml-protoc to produce it :p
mro has joined #ocaml
gravicappa has quit [Ping timeout: 240 seconds]
mro has quit [Remote host closed the connection]
<d_bot_> <anmonteiro> Just to add here that the h2 API is fairly lowlevel and expects you to do the right thing. If the right thing is not obvious open an issue and I’ll see what we can improve
mro has joined #ocaml
<d_bot_> <quernd> Not blaming h2 at all for this, that would be shooting the messenger 😉
mro_ has joined #ocaml
<companion_cube> isn't also grpc this thing google does NOT use internally
mro has quit [Ping timeout: 256 seconds]
mro_ has quit [Quit: Leaving...]
jlrnick has quit [Quit: ouch!]
rgrinberg has joined #ocaml
wyrd has quit [Ping timeout: 240 seconds]
<d_bot_> <mbacarella> it was giving me protocol error 0x1 because i ***obviously*** forgot to include the header content-type: application/grpc
<d_bot_> <mbacarella> *headdesk*
<d_bot_> <mbacarella> only had to man-in-the-middle-attack this grpc service to figure it out
wyrd has joined #ocaml
rgrinberg has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Tuplanolla has quit [Quit: Leaving.]
namkeleser has joined #ocaml
szkl has joined #ocaml
oriba has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
<d_bot_> <ansiwen> do you think that could work as an etcd client?
<d_bot_> <ansiwen> I created a rest api client for the gRPC gateway of etcd, but if a native gRPC access is feasible, I might prefer that.
Haudegen has quit [Ping timeout: 272 seconds]
vicfred has joined #ocaml