Smart auto-tuned messaging system in Python over socket
Use this module to let several scripts communicate over sockets.
- Simple: Extremely simple to use - so simple that it almost feels like magic!
- Powerful: Let an enormous amount of clients communicate to the server
- Awesome: Create intent, setup clients and enjoy!
Follow these instructions to make Jelly operative
Jelly is written with Python 3.6 so make sure you have installed this version or above
In order to install the right versions of the dependencies, there is the Pipfile you can use to setup Jelly by typing
$ pipenv install --three
Start Server:
$ python cli.py server --cafile tests/demo_ssl/server.crt --keyfile tests/demo_ssl/server.key tests.mock_commands
Run some client requests:
$ python cli.py client --cafile tests/demo_ssl/server.crt echo ciao
$ python cli.py client --cafile tests/demo_ssl/server.crt uuid
$ python cli.py client --cafile tests/demo_ssl/server.crt maximum 6 9 99 987
Jelly's tests are made with unittest.
$ python -m unittest discover tests
To rebuild the demo certificates for SSL/TLS encryption use:
$ cd test/demo_ssl
$ openssl genrsa -des3 -passout pass:x1234 -out server.orig.key 2048
$ openssl rsa -passin pass:x1234 -in server.orig.key -out server.key
$ openssl req -new -key server.key -out server.csr
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
In alphabetic order:
Client side:
- Implement headers - Done
- Implement an ID system - Done
- Implement a send_forever directive - Done
- Implement an intent broker
- Implement a master-watchdogs
Server side:
- Read intent file and define a well-structured api endpoint
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.