Skip to content
This repository has been archived by the owner on Jun 14, 2020. It is now read-only.
/ goserve Public archive

Collection of packages for hosting gRPC, HTTP, or other endpoints.

License

Notifications You must be signed in to change notification settings

eleniums/goserve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goserve

Go Report Card GoDoc License: MIT

Collection of packages for hosting gRPC, HTTP, or other endpoints.

It is generally better to just use the standard libraries directly. Less bloat and more control over configuration. See:

Installation

go get -u github.com/eleniums/goserve

HTTP

Import the relevant packages:

import (
	gs "github.com/eleniums/goserve"
	gshttp "github.com/eleniums/goserve/http"
)

Build an HTTP server and listen:

// create TLS configuration
tlsConfig, err = gs.NewTLS(certFile, keyFile)
if err != nil {
	return err
}

// build the server
s := gshttp.New().
	HandleFunc("/ping", ping).
	HandleFunc("/items", items).
	WithTLS(tlsConfig).
	WithMiddleware(telemetry).
	Build()

// create a listener
lis, err := tls.Listen("tcp", "127.0.0.1:9090", tlsConfig)
if err != nil {
	return err
}

// serve the endpoint
err = s.Serve(lis)
if err != nil {
    return err
}

gRPC

Import the relevant packages:

import (
	gs "github.com/eleniums/goserve"
	gsgrpc "github.com/eleniums/goserve/grpc"
)

Build a gRPC server and listen:

// create TLS configuration
tlsConfig, err = gs.NewTLS(certFile, keyFile)
if err != nil {
	return err
}

// build the server
s := gsgrpc.New().
	Register(itempb.RegisterItemServer, srv).
	Register(pingpb.RegisterPingServer, srv).
	WithTLS(tlsConfig).
	WithUnaryInterceptors(telemetry).
	WithMaxSendMsgSize(maxSendMsgSize).
	WithMaxRecvMsgSize(maxRecvMsgSize).
	Build()

// create a listener
lis, err := net.Listen("tcp", "127.0.0.1:50051")
if err != nil {
	return err
}

// serve the endpoint
err = s.Serve(lis)
if err != nil {
    return err
}

About

Collection of packages for hosting gRPC, HTTP, or other endpoints.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages