Skip to main content

No project description provided

Project description

bluemax

bluemax is a python rpc server using websockets.

The concept is that you can write python functions and expose them in the __all__ property of the module.

The complexity comes when you want to do more than this. And that is what I am working on. The most important pattern to me is being able to insert, update and delete in the database and be able to broadcast the changes to all uses after the actor gets their response. I call it broadcast_on_success.

    actor   crud    broadcast
      |       |         |
      |------>|         |
      |       |         |
      |<------|         |
      |       |-------->|
      |       |         |
      |<------|---------|
      |       |         |

The errors from crud are local to the actor. The actor will recieve identity on success and then like every other user hear about crud via broadcast.

Using annotations allows clients to infer function. See the sample.add function.

For deployment of mutiple servers see:

http://www.tornadoweb.org/en/stable/guide/running.html#running-behind-a-load-balancer

To install:

python3.6 -m venv venv
. venv/bin/activate
pip install -e git+https://bitbucket.org/blueshed/bluemax.git#egg=bluemax

To run you can choose either with workers using redis or standalone.

To run standalone:

runmax server -m bluemax.sample

To run with redis:

pip install bluemax[redis]
docker run -p 6379:6379 -d redis:2.8

Then create a .env file containing:

redis_url="redis://localhost/0"

Then run a worker in one terminal and a server in the another.

runmax worker -m bluemax.sample

and

runmax server -m bluemax.sample

Now go to http://localhost:8080 and add some numbers.

To build your own project try:

runmax startproject foo

You can use any name for your module. It will create extension points for both settings and urls and a base procedures modules. runmax will look for your procedures.all in the -m module you pass in.

To release:

pip install -e .[dev]
python setup.py sdist bdist_wheel
twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bluemax-0.0.46.tar.gz (21.2 kB view hashes)

Uploaded Source

Built Distribution

bluemax-0.0.46-py3-none-any.whl (42.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page