Giter Site home page Giter Site logo

vardius / pubsub Goto Github PK

View Code? Open in Web Editor NEW
47.0 1.0 10.0 106 KB

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

Home Page: https://hub.docker.com/r/vardius/pubsub

License: MIT License

Dockerfile 4.14% Makefile 15.70% Go 80.16%
pubsub broker queue bus message-bus message-broker message-queue docker docker-image grpc

pubsub's Introduction

πŸ“¬ 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.