Skip to main content

Powerful Pipes Watcher - Multi-broker watcher tool with the power of UNIX Pipes

License Pypi Versions

Logo

Index

In a nutshell Powerful Pipes Watcher is a multi broker watcher tool that connect them with UNIX pipes.

Install

> pip install powerful-pipes-watch-bus 

Quick Start

WatchBus

Powerful Pipes Watcher read from a broker queue and re-send received data to the UNIX pipeline.

Example

> watch-bus -c redis:// -q my-queue 

Above command will connect to the localhost Redis at default port, at database number 1, and will listen for my-queue queue.

Example with multiple queues

> watch-bus -c redis:// -q my-queue -q second-queue 

With this command watch-bus will listen from two queues events.

SendBus

Powerful Pipes SendBus read from stdin and re-send received JSON data to the Broker queue(s).

Example

> cat data.json | send-bus -c redis:// -q my-queue 

Above command will connect to the localhost Redis at default port, at database number 1, and will listen for my-queue queue.

Example with multiple queues

> cat data.json | send-bus -c redis:// -q my-queue -q second-queue 

With this command sendBus will send data to two broker queues.

As a Python library

You also can use Powerful Pipes Watcher as a Python library in your Python code:

from powerful_pipes_watch_bus import connect_bus

def main():
  redis_connection = connect_bus("redis+pubsub://localhost:6379/?db=0&channel=my-channel")
  
  for message in redis_connection.read_json_messages():
    redis_connection.send_json_message(message, "my-other-queue")

if __name__ == "__main__":
  main()

Supported brokers

Currently, supported brokers are:

  • Redis Pub/Sub
  • Redis Streams
  • Redis simple Queue listener

We'll be happy if you want to contribute adding new brokers! :)

Redis examples

Redis Simple Queue Listener

Bus connections for Redis should look like:

redis://[[user]:[password]@][host][:port][/?db=INTEGER][&queue=STRING]]

Default values:

  • user: Null
  • password: Null
  • Host: 127.0.0.1
  • port: 6379
  • db: 1
  • queue: default

Redis Pub / Sub

Bus connections for Redis should look like:

redis+pubsub://[[user]:[password]@][host][:port][/?[db=INTEGER][&channel=STRING]]

channel is the pub/sub channel to listen for.

Default values:

  • user: Null
  • password: Null
  • Host: 127.0.0.1
  • port: 6379
  • db: 1
  • channel: default

Redis Streams

Bus connections for Redis should look like:

redis+streams://[[user]:[password]@][host][:port]/?stream=STRING[&db=INTEGER][&group=STRING][&consumer=STRING][&timeout=INTEGER][&batch_size=INTEGER][&persistent=BOOLEAN]

This mode can works as a consumer or as a producer, depending on the parameters.

Consumer

If you want to use the Redis Streams as a consumer, you should specify the group and consumer parameters.

Producer

If you want to use the Redis Streams as a producer, you should specify ONLY the stream parameter.

Mandatory parameters

  • stream: The stream name to listen for.

Default values:

  • user: Null
  • password: Null
  • Host: 127.0.0.1
  • port: 6379
  • db: 1
  • consumer: "auto" (will be generated automatically)
  • persistent: False. If True, the consumer will be created as persistent.

Authors

Powerful Pipes was made by 42Crunch Research Team:

License

Powerful Pipes is Open Source and available under the AGPLv3+.

Contributions

Contributions are very welcome. See CONTRIBUTING.md or skim existing tickets to see where you could help out.

Acknowledgements

Project logo thanks to Camera control vector created by upklyak.

Metadata

Release files for powerful-pipes-watch-bus 1.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for powerful-pipes-watch-bus 1.0.11
File Size Uploaded
powerful-pipes-watch-bus-1.0.11.tar.gz 21.6 kB Details

Release files / powerful-pipes-watch-bus-1.0.11.tar.gz

Download URL powerful-pipes-watch-bus-1.0.11.tar.gz
Size 21.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cb6627d84b3abc8b7cc0cc40e44a607a23dc1fb74a3d04cca138b02397c62073
BLAKE2b-256 checksum
How to use checksums
9b9b1bfc17c28d4c5ed6d66bd6f0bb0a22af21bed6219e80d37829dab9838673
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release history Release notifications | RSS feed

This release

1.0.11 This release

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page