I like grpc but I wish it was easier to use from the browser. My favorite solution on github only has 5 stars.

> failing to set attributes as protocols have evolved over time has been a genuine problem.

Can you explain what you mean? The evolution of datagrams seems like it's one of grpc's core strengths.

Have you seen https://github.com/grpc-ecosystem/grpc-gateway? It generates a reverse proxy that converts proto <-> JSON and will even output a Swagger definition you can use with a JS client library.