Warning

BrainSlug is a work in progress. Code may change rapidly in incompatible manners. Any question, please drop us an issue

https://raw.githubusercontent.com/BBVA/brainslug/master/assets/images/brainslug.png https://img.shields.io/pypi/v/brainslug.svg https://img.shields.io/circleci/project/github/BBVA/brainslug/master.svg https://readthedocs.org/projects/brainslug/badge/?version=latest https://img.shields.io/github/license/BBVA/brainslug.svg

BrainSlug is a framework for parasitic computing. Allowing you to write programs which code and logic live in a computer but actions or side-effects are performed on another.

Example:

from brainslug import run, slug, body

@slug(remote=body.platform == 'linux')
def get_root_shell(remote):
    with remote.open('/etc/passwd', 'r') as passwd:
        for line in passwd:
            if line.startswith('root'):
                return line.split(':')[-1]

run(get_root_shell)

This code should be run in a computer we call slug. Running this code will open the port 8080 and stop execution until a body connects to it.

To connect a body, in a remote system run the following:

$ curl http://<slug-ip>:8080/boot/python | python

This will spawn the body to life and connect it with the slug.

The program continues running in the slug, but the file reads are performed in the body.

More examples on the example section.

Indices and tablesΒΆ