backbone

package module
v0.0.0-...-fc4206c Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2023 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package backbone provides a gRPC and HTTP server backbone for microservices.

Example
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/spf13/pflag"
	"htdvisser.dev/exp/backbone/server"
	"htdvisser.dev/exp/backbone/server/recovery"
	"htdvisser.dev/exp/backbone/server/reflection"
	"htdvisser.dev/exp/clicontext"
	"htdvisser.dev/exp/pflagenv"
)

var config struct {
	server server.Config
}

func init() {
	pflag.CommandLine.AddFlagSet(config.server.Flags("", nil))
}

func main() {
	ctx, exit := clicontext.WithInterruptAndExit(context.Background())
	defer exit()

	if err := pflagenv.NewParser(pflagenv.Prefixes("backbone_")).ParseEnv(pflag.CommandLine); err != nil {
		fmt.Fprintln(os.Stderr, err)
		pflag.Usage()
		os.Exit(2)
	}

	pflag.Parse()

	server := server.New(config.server)

	reflection.Register(server)
	recovery.Register(server)

	// TODO: Register services here.

	if err := server.Run(ctx); err != nil {
		fmt.Fprintln(os.Stderr, err)
		return
	}
}
Output:

Directories

Path Synopsis
client
cookie
Package cookie provides middleware for working with device, session and user session cookies.
Package cookie provides middleware for working with device, session and user session cookies.
grpc
Package grpc provides the backbone for a gRPC server with some opinionated defaults.
Package grpc provides the backbone for a gRPC server with some opinionated defaults.
http
Package http provides the backbone for an HTTP server with some opinionated defaults.
Package http provides the backbone for an HTTP server with some opinionated defaults.
internal/channelz
Package channelz can be used to expose the channelz service on the gRPC server.
Package channelz can be used to expose the channelz service on the gRPC server.
packet
Package packet provides the backbone for a UDP packet server with some opinionated defaults.
Package packet provides the backbone for a UDP packet server with some opinionated defaults.
recovery
Package recovery can be used to add panic recovery middleware to the server.
Package recovery can be used to add panic recovery middleware to the server.
reflection
Package reflection can be used to support gRPC server reflection on the server.
Package reflection can be used to support gRPC server reflection on the server.
stream
Package stream provides the backbone for a TCP stream server with some opinionated defaults.
Package stream provides the backbone for a TCP stream server with some opinionated defaults.

Jump to

Keyboard shortcuts

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