{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "PySandbox\n-------\n\n*Unstable*\n\nPySandbox is a backend for untrusted python sources. It is based on CPython's bytecode format and containers. It works step by step through the pipeline of pysandbox. \n\nClient > Purifier > PySandbox > Executor > NameKeeper > Container\n\nClient\n------\nSends untrusted python code as a raw string. E.g;\n\nprint(2 + 2)\n\nPurifier\n--------\nChecks for any potential threats in code. Raises Insecure exception if sees any.\n\nPySandbox\n-------\nResponsible for managing containers and sending data to them. Takes user code that is checked from Purifier. Compiles it to bytecode, marshals it and encodes it before shipping it via JSON. Starts container in every action of running command.\n\nUses container caching by giving id values to every container it started. If given id not found in instances; it will start new and after it is done with it, it will pause instead of kill. `quit` method should be called before exitting.\n\nThe preffered encoding is base64.\nPySandbox uses ports in a range of 1765 to nth container running same time\n\nExecutor\n--------\nAn HTTP service that takes base64 encoded python bytecode. It executes bytecode in a listened environment. Routes standard out and error file descriptors to a buffer and returns it as a json format. That listened environment provided by NameKeeper.\n\nRequest: {'code': ''}\nResponse (200): {'result': {'out': '', 'err': '-alpine image that contains executor", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/isidentical/pysandbox", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "PySandbox", "package_url": "https://pypi.org/project/PySandbox/", "platform": "", "project_url": "https://pypi.org/project/PySandbox/", "project_urls": { "Homepage": "https://github.com/isidentical/pysandbox" }, "release_url": "https://pypi.org/project/PySandbox/0.3-0/", "requires_dist": null, "requires_python": "", "summary": "Safe evaluation of untrusted code on containers", "version": "0.3-0" }, "last_serial": 5600736, "releases": { "0.3-0": [ { "comment_text": "", "digests": { "md5": "27102319e9ef2d855a337b43ba7043ba", "sha256": "ffe4c00603eab6b498285cc92ea94201b4b11636a3d070dc4295773efafd97de" }, "downloads": -1, "filename": "PySandbox-0.3-0.tar.gz", "has_sig": false, "md5_digest": "27102319e9ef2d855a337b43ba7043ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5245, "upload_time": "2019-07-29T17:56:23", "url": "https://files.pythonhosted.org/packages/3b/2b/550c851abdd2745d9ea9258c91e91d35811963e2e3b25034353485241b52/PySandbox-0.3-0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "27102319e9ef2d855a337b43ba7043ba", "sha256": "ffe4c00603eab6b498285cc92ea94201b4b11636a3d070dc4295773efafd97de" }, "downloads": -1, "filename": "PySandbox-0.3-0.tar.gz", "has_sig": false, "md5_digest": "27102319e9ef2d855a337b43ba7043ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5245, "upload_time": "2019-07-29T17:56:23", "url": "https://files.pythonhosted.org/packages/3b/2b/550c851abdd2745d9ea9258c91e91d35811963e2e3b25034353485241b52/PySandbox-0.3-0.tar.gz" } ] }