grpc / grpc/grpc-rust

custom codec examples dont work when using on client not build with rust

Open
#2,017 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
12.5k
Forks
1.3k
Avg merge
4d 7h
Merged PRs (30d)
24

Description

I have re-created the examples for json-codec

https://github.com/codeitlikemiley/json-codec

from:

https://github.com/hyperium/tonic/blob/master/examples/src/json-codec/server.rs
https://github.com/hyperium/tonic/blob/master/examples/src/json-codec/common.rs
https://github.com/hyperium/tonic/blob/master/examples/src/json-codec/client.rs

I am experimenting on it , if i can reduced as much as code

i wonder if i can use this concept of custom codec with duplex connection

with axum and tonic:
https://github.com/codeitlikemiley/duplex-server-rs/blob/61c088d0c5554272a2eb5a79915abeed4d201797/src/main.rs#L35

that example is already working , but

what i had in mind is if we just run tonic alone , and pass

on headers `application/json` for content type

would be able to use client like grpcurl , curl, postman?

That when i found out that we cant

on the premise that we are being required to have `tonic-reflection`

in our case we are using `tonic::manual`

as such there is not config to specify a proto

and defining or re-creating a proto file in our case `hello-world.proto`

would have codec discrepancy as it would use the default ProstCodec and not the JsonCodec

So im a kinda stuck on a loop , and would like to know if anyone have success on using this on real world project

as the example alone is only useful if the client was built with rust, what if our client is on js
or using curl, grpcup or postman etc.

I couldnt wrap it around my head on how to make best use of custom codec

as its impossible to use on different client as those clients dont expect json

or am i missing something out ....

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.