A Seamless gRPC web client library without code generation by plugin system
syntax = "proto3";
package greeting;
service Greeting {
rpc Greeting (GreetingRequest) returns (GreetingResponse);
}
message GreetingRequest {
string name = 1;
}
message GreetingResponse {
string message = 1;
}
import { Client } from "@hallow/grpc-web"
import { GreetingStub } from './greeting.proto'
const client = new Client({ baseURL: "/api" })
const greeter = new GreetingStub(client)
const res = await greeter.greeting({message: "Hello, Ryan!"})
console.log(`hello from server: ${res.message}`)
import { Client } from "@hallow/grpc-web"
import { GreetingHookStub } from './greeting.proto'
import { ErrorBoundary } from "react-error-boundary";
const client = new Client({ baseURL: "/api" })
const greeter = new GreetingHookStub(client)
function Greeter() {
const res = greeter.useGreeting({message: "Hello, Ryan!"})
return <div>{`hello from server: ${res.message}`}</div>
}
function App() {
return <Suspense fallback={"loading"}>
<ErrorBoundary fallback={"Something went wrong"}>
<Greeter />
</ErrorBoundary>
</Suspense>
}
- google-protobuf
- @improbable-eng/grpc-web