Queueing-tool
|Build Status| |Coverage Status| |pyversion| |license|
Queueing-tool is a package for simulating and analyzing networks. It is an
event based simulator that uses
queues <http://en.wikipedia.org/wiki/Queueing_theory>__ to simulate congestion
and waiting on the network that includes tools for
visualizing network dynamics.
Documentation
The package documentation can be found at
http://queueing-tool.readthedocs.org/.
Features
- Fast simulation. Queueing-tool is designed to run very quickly;
the core algorithms were written in
cython <http://cython.org/>__.
- Visualizations. There are several tools that allow you to easily
view congestion and movement within your network. This includes ready
made functions for animating network dynamics while your simulations
take place.
- Full documentation. Every function and class is fully documented
both
online <http://queueing-tool.readthedocs.org/>__ and in the
docstrings.
- Fast setup. The network is represented as a
networkx graph <http://networkx.readthedocs.org/en/stable/>.
Queueing-tool networks allow for probabilistic routing, finite
capacity queues, and different blocking protocols for analyzing
loss networks <http://en.wikipedia.org/wiki/Loss_network>.
Installation
Prerequisites: Queueing-tool runs on Python 2.7 and 3.4-3.10, but
changes going forward are only tested against Python 3.6-3.10. Queueing-tool
requires networkx <http://networkx.readthedocs.org/en/stable/>__ and
numpy <http://www.numpy.org/>, and depends on
matplotlib <http://matplotlib.org/> if you want to plot.
Installation: To install from
PyPI <https://pypi.python.org/pypi/queueing-tool>__ use:
.. code:: bash
pip install queueing-tool
The above will automatically install networkx and numpy. If you want to plot use:
.. code:: bash
pip install queueing-tool[plotting]
Note that queueing-tool uses networkx's pagerank implementation. As of
networkx 2.8.6, they have several versions of the pagerank algorithm and
queueing-tool defaults to using the version that requires scipy. If
scipy is not installed then it trys the numpy based implementation.
After installation, import queueing-tool with something like:
.. code:: python
import queueing_tool as qt
Bugs and issues
The issue tracker is at https://github.com/djordon/queueing-tool/issues. Please report any bugs or issue that you find there. Of course, pull requests are always welcome.
Copyright and license
Code and documentation Copyright 2014-2022 Daniel Jordon. Code released
under the MIT license <https://github.com/djordon/queueing-tool/blob/master/LICENSE.txt>__.
.. |Build Status| image:: https://github.com/djordon/queueing-tool/actions/workflows/run-tests.yml/badge.svg
:target: https://github.com/djordon/queueing-tool/actions/workflows/run-tests.yml/badge.svg
.. |Coverage Status| image:: https://coveralls.io/repos/djordon/queueing-tool/badge.svg?branch=master
:target: https://coveralls.io/r/djordon/queueing-tool?branch=master
.. |pyversion| image:: https://img.shields.io/pypi/pyversions/queueing-tool.svg
:alt: Supported Python versions.
:target: http://pypi.python.org/pypi/queueing-tool/
.. |license| image:: https://img.shields.io/pypi/l/queueing-tool.svg
:alt: MIT License
:target: https://opensource.org/licenses/MIT