Recent Posts
gRPC Firestore `Listen` in Rust
Obsessing on gRPC Firestore Listen
somewhat but it’s also a good learning opportunity for me to write stuff in Rust. This doesn’t work against Google’s public endpoint (possibly for the same reason that gRPCurl doesn’t work either) but this does work against the Go server described in the other post.
I’m also documenting here because I always encounter challenges using TLS with Rust (and this documents 2 working ways to do this with gRPC) as well as references two interesting (rust) examples that use Google services.
gRPC Firestore `Listen`
A question on Stack overflow Firestore gRPC Listen does not send deletions piqued by interest but created a second problem for me: I’m unable to get its Listen
method to work using gRPCurl.
For what follows, you will need:
- a Google Project with Firestore enabled and a database (default:
(default)
) containing a Collection (e.g.Dogs
) with at least one Document (e.g.freddie
) googleapis
cloned locally in order to access Protobufs
Summary
client | server | R | See |
---|---|---|---|
gRPCurl |
firestore.googleapis.com:443 |
✅ | link |
Go client | firestore.googleapis.com:443 |
✅ | link |
gRPCurl |
Go server | ✅ | link |
Go client | Go server | ✅ | link |
I subsequently tried this using Postman and it also works (✅).
gRPC-Web w/ FauxRPC and Rust
After recently discovering FauxRPC, I was sufficiently impressed that I decided to use it to test Ackal’s gRPC services using rust.
FauxRPC provides multi-protocol support and so, after successfully implementing the faux gRPC client tests, I was compelled to try gRPC-Web too. For no immediate benefit other than, it’s there, it’s free and it’s interesting. As an aside, the faux REST client tests worked without issue using Reqwest.
Unfortunately, my optimism hit a wall with gRPC-Web and what follows is a summary of my unresolved issue.