qproxy

package module
v0.0.13 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2020 License: MIT Imports: 19 Imported by: 0

README

qproxy Build Status Docker Repository on Quay

qproxy is a single frontend API for multiple backend queueing systems. It supports gRPC as well as http/json via the gRPC-Gateway. For multi-cloud environments, or environments with multiple queueing systems, qproxy provides a unified interface and a single place for metrics, rate limiting, etc.

qproxy currently supports SQS as a backend, with plans to add GCP's PubSub.

Building

You will need to follow this to install protoc . Once that's done you should be able to run "make" to build the project.

Running

./build/qproxy.linux --region=us-west-2

Documentation

Overview

TODO: move elsewhere

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddRoutes

func AddRoutes(mux *http.ServeMux, server *QProxyServer) error

AddRoutes matches a mux with handlers

Types

type CompressionHandler

type CompressionHandler struct {
	Handler func(http.ResponseWriter, *http.Request)
}

CompressionHandler is a wrapper around http.Handler which adds suitable response compression based on the client's Accept-Encoding headers.

func (CompressionHandler) ServeHTTP

func (c CompressionHandler) ServeHTTP(writer http.ResponseWriter, req *http.Request)

ServeHTTP adds compression to the original http.Handler's ServeHTTP() method.

type ListQueuesServerStream

type ListQueuesServerStream struct {
	rpc.QProxy_ListQueuesServer
	NewCtx context.Context
}

func (ListQueuesServerStream) Context

type QProxyServer

type QProxyServer struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer(conf *config.Config) (*QProxyServer, error)

func (*QProxyServer) AckMessages

func (s *QProxyServer) AckMessages(ctx context.Context, in *rpc.AckMessagesRequest) (resp *rpc.AckMessagesResponse, err error)

func (*QProxyServer) CreateQueue

func (s *QProxyServer) CreateQueue(ctx context.Context, in *rpc.CreateQueueRequest) (resp *rpc.CreateQueueResponse, err error)

func (*QProxyServer) DeleteQueue

func (s *QProxyServer) DeleteQueue(ctx context.Context, in *rpc.DeleteQueueRequest) (resp *rpc.DeleteQueueResponse, err error)

func (*QProxyServer) GetMessages

func (s *QProxyServer) GetMessages(ctx context.Context, in *rpc.GetMessagesRequest) (resp *rpc.GetMessagesResponse, err error)

func (*QProxyServer) GetQueue

func (s *QProxyServer) GetQueue(ctx context.Context, in *rpc.GetQueueRequest) (resp *rpc.GetQueueResponse, err error)

func (*QProxyServer) Healthcheck

func (s *QProxyServer) Healthcheck(ctx context.Context, in *rpc.HealthcheckRequest) (resp *rpc.HealthcheckResponse, err error)

func (*QProxyServer) ListQueues

func (s *QProxyServer) ListQueues(in *rpc.ListQueuesRequest, stream rpc.QProxy_ListQueuesServer) (err error)

func (*QProxyServer) ModifyAckDeadline

func (s *QProxyServer) ModifyAckDeadline(ctx context.Context, in *rpc.ModifyAckDeadlineRequest) (resp *rpc.ModifyAckDeadlineResponse, err error)

func (*QProxyServer) ModifyQueue

func (s *QProxyServer) ModifyQueue(ctx context.Context, in *rpc.ModifyQueueRequest) (resp *rpc.ModifyQueueResponse, err error)

func (*QProxyServer) PublishMessages

func (s *QProxyServer) PublishMessages(ctx context.Context, in *rpc.PublishMessagesRequest) (resp *rpc.PublishMessagesResponse, err error)

func (*QProxyServer) PurgeQueue

func (s *QProxyServer) PurgeQueue(ctx context.Context, in *rpc.PurgeQueueRequest) (resp *rpc.PurgeQueueResponse, err error)

Directories

Path Synopsis
backends
sqs
cmd

Jump to

Keyboard shortcuts

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