Skip to content
grpcp is a Grpc Persistent Connection Pool.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.travis.yml travis Jun 21, 2018
LICENSE init Jun 20, 2018
Makefile tests Jun 21, 2018
README.md add godoc Jun 22, 2018
grpcp.go add Dial func force to create new conn Aug 30, 2018
grpcp_test.go testDial reset defaultPool Sep 12, 2018

README.md

grpcp is a Grpc Persistent Connection Pool.

LICENSE Build Status codecov Go Report Card Godoc

Installation

go get -u github.com/0x5010/grpcp

Usage

default

import (
    "context"
    "fmt"

    "google.golang.org/grpc"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
)

func main() {
    var addr, name string
    conn, _ := grpc.Dial(addr, grpc.WithInsecure())
    defer conn.Close()
    client := pb.NewGreeterClient(conn)
    r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
    fmt.Println(r.GetMessage())
}

with grpcp

import (
    "context"
    "fmt"

    "google.golang.org/grpc"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
)

func main() {
    var addr, name string

    conn, _ := grpcp.GetConn(addr)  // get conn with grpcp default pool
    // defer conn.Close()  // no close, close will disconnect
    client := pb.NewGreeterClient(conn)
    r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
    fmt.Println(r.GetMessage())
}

custom dial function

import (
    "context"
    "fmt"

    "github.com/0x5010/grpcp"
    "google.golang.org/grpc"
    pb "google.golang.org/grpc/examples/helloworld/helloworld"
)

func main() {
    var addr, name string

    pool := grpcp.New(func(addr string) (*grpc.ClientConn, error) {
        return grpc.Dial(
            addr,
            grpc.WithInsecure(),
        )
    })
    conn, _ := pool.GetConn(addr)

    client := pb.NewGreeterClient(conn)
    r, _ := client.SayHello(context.Background(), &pb.HelloRequest{Name: name})
    fmt.Println(r.GetMessage())
}
You can’t perform that action at this time.