mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
const grpc = require("@grpc/grpc-js");
|
|
const protoLoader = require("@grpc/proto-loader");
|
|
const packageDefinition = protoLoader.loadSync("benchmark.proto", {});
|
|
const proto = grpc.loadPackageDefinition(packageDefinition).benchmark;
|
|
const fs = require("fs");
|
|
|
|
function ping(call, callback) {
|
|
callback(null, { message: "Hello, World" });
|
|
}
|
|
|
|
function main() {
|
|
const server = new grpc.Server();
|
|
server.addService(proto.BenchmarkService.service, { ping: ping });
|
|
const tls = !!process.env.TLS && (process.env.TLS === "1" || process.env.TLS === "true");
|
|
const port = process.env.PORT || 50051;
|
|
const host = process.env.HOST || "localhost";
|
|
let credentials;
|
|
if (tls) {
|
|
const ca = fs.readFileSync("./cert.pem");
|
|
const key = fs.readFileSync("./key.pem");
|
|
const cert = fs.readFileSync("./cert.pem");
|
|
credentials = grpc.ServerCredentials.createSsl(ca, [{ private_key: key, cert_chain: cert }]);
|
|
} else {
|
|
credentials = grpc.ServerCredentials.createInsecure();
|
|
}
|
|
server.bindAsync(`${host}:${port}`, credentials, () => {
|
|
console.log(`Server running at ${tls ? "https" : "http"}://${host}:${port}`);
|
|
});
|
|
}
|
|
|
|
main();
|