Skip to content
/ pubsub Public

gRPC message-oriented middleware on top of message-bus, event ingestion and delivery system.

License

Notifications You must be signed in to change notification settings

vardius/pubsub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¬ pubsub

Build Status Go Report Card codecov FOSSA Status Docker Pulls license

logo

pubsub - gRPC message-oriented middleware on top of message-bus, event ingestion and delivery system.

Table of Contents

πŸ“– ABOUT

pubsub allows you to publish even that is delivered to all subscribed clients. See also pushpull.

Contributors:

Want to contribute ? Feel free to send pull requests!

Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.

🚏 HOW TO USE

🐳 Docker Hub

Pull image from the command line:

$ docker pull vardius/pubsub:latest

Use as base image in DockerFile:

FROM vardius/pubsub:latest

Pull image from the command line:

$ docker pull docker.pkg.github.com/vardius/pubsub/pubsub:latest

Use as base image in DockerFile:

FROM docker.pkg.github.com/vardius/pubsub/pubsub:latest

How to use this image

Starting a pubsub instance:

docker run --name my-pubsub -e QUEUE_BUFFER_SIZE=100 -d vardius/pubsub:tag

Environment Variables

HOST (string)

This is optional variable, sets gRPC server host value. Default 0.0.0.0

PORT (int)

This is optional variable, sets gRPC server port value. Default 9090

QUEUE_BUFFER_SIZE (int)

This is optional variable, sets buffered channel length per subscriber. Default 0, which evaluates to runtime.NumCPU().

KEEPALIVE_MIN_TIME

This is optional variable, if a client pings more than once every 5 minutes (default), terminate the connection. ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms, -1.5h or 2h45m. Valid time units are ns, us (or Β΅s), ms, s, m, h

KEEPALIVE_TIME (nanoseconds)

This is optional variable, ping the client if it is idle for 2 hours (default) to ensure the connection is still active. ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms, -1.5h or 2h45m. Valid time units are ns, us (or Β΅s), ms, s, m, h

KEEPALIVE_TIMEOUT (nanoseconds)

This is optional variable, wait 20 second (default) for the ping ack before assuming the connection is dead. ParseDuration parses a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as 300ms, -1.5h or 2h45m. Valid time units are ns, us (or Β΅s), ms, s, m, h

LOG_VERBOSE_LEVEL (int)

This is optional variable, Verbose level. -1 = Disabled, 0 = Critical, 1 = Error, 2 = Warning, 3 = Info, 4 = Debug. Default 3 (Info).

Makefile

➜  pubsub git:(master) make help
version                        Show version
docker-build                   Build given container. Example: `make docker-build`
docker-run                     Run container on given port. Example: `make docker-run PORT=9090`
docker-stop                    Stop docker container. Example: `make docker-stop`
docker-rm                      Stop and then remove docker container. Example: `make docker-rm`
docker-publish                 Docker publish. Example: `make docker-publish REGISTRY=https://your-registry.com`
docker-tag                     Tag current container. Example: `make docker-tag REGISTRY=https://your-registry.com`
docker-release                 Docker release - build, tag and push the container. Example: `make docker-release REGISTRY=https://your-registry.com`

Client

See proto package for details.

πŸ“œ License

This package is released under the MIT license. See the complete license in the package

FOSSA Status