Coder Social home page Coder Social logo

pettingzoo's Introduction

Petting Zoo Petting Zoo

A RabbitMQ live message viewer (and publisher)

PettingZoo provides a desktop interface for subscribing and publishing to RabbitMQ. It is a useful tool in debugging, allowing you to monitor the flow of messages in a running system and replay those messages if required.

PettingZoo requires .NET 6 to run.

Features

  1. Subscribe to one or more exchanges with specified routing keys to inspect published messages
  2. Publish new messages to an exchange or to a specific queue
  3. JSON syntax highlighting and validation
  4. Support for publishing and validating Tapeti messages from assembly files or directly from (private) NuGet feeds
  5. Support for exporting and importing Tapeti.Cmd compatible single-file JSON

Builds

Builds are automatically run using AppVeyor. Release versions are available as a GitHub release and include a ZIP file containing the executable and required files for 64-bits Windows.

Extract the ZIP file and run PettingZoo.exe to get started.

The source code is compiled using Visual Studio 2022.

Build status Master build (stable release)

Build status Latest build

Screenshots

Subscribing to messages

Subscribe example

Publishing a message

Publish example

Publishing a message from a Tapeti-compatible assembly

Tapeti publish example

Credits

Icons

Toolbar icons are from the (now defunct) Interaction Assets pack by Madebyoliver http://www.flaticon.com/authors/madebyoliver

Designed by Freepik and distributed by Flaticon

pettingzoo's People

Contributors

mvrens avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

pettingzoo's Issues

Queue name in subscriber tab

Goal: allow a subscriber tab to be used as a queue for direct publishing, similar to how "Reply to new subscriber tab" functions, for scenarios where the reply-to header is not used.

Example: we have various broadcast messages to query information from multiple services which include a field in the message body called "ReplyTo", where each service responding to the broadcast should send its replies to the requesting service instead of broadcasting it back to all services. Since this is not a one-to-one request-response but many-to-one and can result in multiple replies, the replies are sent using IPublisher.SendToQueue.

To test this flow, it would be nice if PettingZoo included a few convenience features:

  1. Show the name of the created dynamic queue with an option for easy copying
  2. Nice to have: create a subscriber tab without any bindings for this purpose

Current workaround:

  1. Subscribe to any exchange with a nonsense routing key
  2. Look up the name of the newly created dynamic queue in the RabbitMQ Management UI
  3. Use that queue name in the published message to capture the replies in the PettingZoo subscriber tab

Improve connection status and changing servers

  1. Show which server we are connected to
  2. Don't allow publishing until the connection has been established
  3. Show additional indicator in Subscribe tab while connecting
  4. When disconnecting / changing server, add indicator to subscriber tabs that the connection has been lost
  5. Update publisher tabs to the new connection, instead of attempting to publish on the old

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.