Skip to content

nextblu/Jelly

Repository files navigation

Logo

Jelly

Smart auto-tuned messaging system in Python over socket
Use this module to let several scripts communicate over sockets.

Demo-server

  • 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!

-----------------------------------------------------

Getting Started

Follow these instructions to make Jelly operative

Prerequisites

Jelly is written with Python 3.6 so make sure you have installed this version or above

Installing

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

-----------------------------------------------------

Minimal working example:

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

Running the tests:

Jelly's tests are made with unittest.

$ python -m unittest discover tests

Test certficates:

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

-----------------------------------------------------

Authors:

In alphabetic order:

What we are working on:

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

-----------------------------------------------------

Contributing

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.

License alt text

MIT