Metadata-Version: 2.1
Name: python-banyan
Version: 3.2
Summary: A Non-Blocking Event Driven Applications Framework
Home-page: https://github.com/MrYsLab/python_banyan
Author: Alan Yorinks
Author-email: MisterYsLab@gmail.com
License: GNU Affero General Public License v3 or later (AGPLv3+)
Keywords: python banyan,RPC,Remote Procedure Call,Event Driven,Asynchronous,Non-Blocking,Raspberry Pi,ZeroMQ,MessagePack,RedBot
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Education
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: System :: Hardware
Description-Content-Type: text/markdown
Requires-Dist: pyzmq
Requires-Dist: u-msgpack-python
Requires-Dist: msgpack-python
Requires-Dist: numpy (>=1.9)
Requires-Dist: msgpack-numpy
Requires-Dist: psutil
Requires-Dist: apscheduler

# The Python Banyan Framework
![](https://github.com/MrYsLab/python_banyan/blob/master/images/BanyanTree.png)


The Python Banyan Framework is a lightweight, reactive framework used to
create flexible, non-blocking, event driven, asynchronous applications.
It was designed primarily to aid in the implementation of real-time physical computing applications
 for devices such as
 the Raspberry Pi, ESP8266,  and Arduino,
but may easily be applied to projects outside of the physical programming domain.

It is being used by [Palace Games](https://www.raspberrypi.org/blog/raspberry-pi-escape-room/)
to concurrently monitor hundreds of real-time sensors and actuators.

* Based on a network connected Publish/Subscribe model,  Banyan components publish 
user defined protocol messages in the form of Python dictionaries.
* A Banyan protocol message may contain Numpy data.
* Applications may reside on a single computer or be distributed across 
multiple computers without having to change source code.
* Compatible Banyan Frameworks are available for [JavaScript](https://github.com/MrYsLab/js-banyan), [Ruby](https://github.com/MrYsLab/rb_banyan), and
[Java](https://github.com/MrYsLab/javabanyan). Components written in any of these languages can interact with components of a differing language without modification.
* Runs on Python 2 or Python 3 (recommended).

New Features Introduced in 3.0
* An MQTT Gateway to interconnect MQTT and Banyan networks so that data may be shared.
* A new "learn by example" [User's Guide](https://mryslab.github.io/python_banyan/) is provided.
* A component launcher that will allows you to launch Banyan components on a single 
computer or multiple computers, all from a single command.

Use pip to install. View the full [installation instructions](https://mryslab.github.io/python_banyan/install/#installing-python-banyan_1)


