Home

Awesome

📨 pushpull

Build Status Go Report Card codecov FOSSA Status Docker Pulls license

<img align="right" height="180px" src="https://github.com/vardius/gorouter/blob/master/website/src/static/img/logo.png?raw=true" alt="logo" />

pushpull - gRPC event-oriented middleware on top of worker-pool, event ingestion and delivery system.

pushpull allows you to push event to queue that later can be pulled by one of clients pulling from that queue. See also pubsub.

<details> <summary>Table of Contents</summary> <!-- toc --> <!-- tocstop --> </details>

📖 ABOUT

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/pushpull:latest

Use as base image in DockerFile:

FROM vardius/pushpull:latest

Github Package Registry

Pull image from the command line:

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

Use as base image in DockerFile:

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

How to use this image

Starting a pushpull instance:

docker run --name my-pushpull -e QUEUE_BUFFER_SIZE=100 -d vardius/pushpull: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 worker pool. 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

➜  pushpull 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