server

package
v1.14.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2025 License: MIT Imports: 5 Imported by: 0

README

grpc server

server is a gRPC server library for Go, it provides a simple way to create and run a gRPC server.

Example of use

package main

import (
    "context"
    "fmt"
    "github.com/go-dev-frame/sponge/pkg/grpc/server"
    "google.golang.org/grpc"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
)

type greeterServer struct {
    pb.UnimplementedGreeterServer
}

func (s *greeterServer) SayHello(_ context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
    fmt.Printf("Received: %v\n", in.GetName())
    return &pb.HelloReply{Message: "Hello " + in.GetName()}, nil
}

func main() {
    port := 8282
    registerFn := func(s *grpc.Server) {
        pb.RegisterGreeterServer(s, &greeterServer{})
        // Register other services here
    }

    fmt.Printf("Starting server on port %d\n", port)
    srv, err := server.Run(port, registerFn,
        //server.WithSecure(credentials),
        //server.WithUnaryInterceptor(unaryInterceptors...),
        //server.WithStreamInterceptor(streamInterceptors...),
        //server.WithServiceRegister(srFn), // register service address to Consul/Etcd/Zookeeper...
        //server.WithStatConnections(metrics.WithConnectionsLogger(logger.Get()), metrics.WithConnectionsGauge()),
    )
    if err != nil {
        panic(err)
    }
    defer srv.Stop()

    select {}
}

Documentation

Overview

Package server is generic grpc server-side.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run(port int, registerFn RegisterFn, options ...Option) (*grpc.Server, error)

Run grpc server with options, registerFn is the function to register object to the server

Types

type Option

type Option func(*options)

Option set server option

func WithSecure

func WithSecure(credential credentials.TransportCredentials) Option

WithSecure set secure

func WithServiceRegister

func WithServiceRegister(fn ServiceRegisterFn) Option

WithServiceRegister set service register

func WithStatConnections

func WithStatConnections(opts ...metrics.ConnectionOption) Option

WithStatConnections enable stat connections

func WithStreamInterceptor

func WithStreamInterceptor(interceptors ...grpc.StreamServerInterceptor) Option

WithStreamInterceptor set stream interceptor

func WithUnaryInterceptor

func WithUnaryInterceptor(interceptors ...grpc.UnaryServerInterceptor) Option

WithUnaryInterceptor set unary interceptor

type RegisterFn

type RegisterFn func(srv *grpc.Server)

RegisterFn register object

type ServiceRegisterFn

type ServiceRegisterFn func() error

ServiceRegisterFn used to register service address to Consul/ETCD/Nacos/Zookeeper...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL