{ "info": { "author": "Walter Moreira", "author_email": "walter@waltermoreira.net", "bugtrack_url": null, "classifiers": [], "description": "=======\ntart.py\n=======\n\nPython implementation of the `Actor Model`_ inspired from `tart.js`_.\n\nOverview\n========\n\nThe initial ideas for ``tartpy`` are copied from `@dalnefre`_ and\n`@tristanls`_. At the beginning, the goal was to replicate `tart.js`_\nin Python. Lately, it has diverged slightly, to experiment with the\nnew Python asynchrony model introduced in version 3.4.\n\n``tartpy`` aims to be an actor library with the following features:\n\n- it implements the pure actor model (rather than the Erlang model),\n\n- it can be used in practical situations to express lock-free and\n concurrent algorithms,\n\n- it abstracts the network transport to allow arbitrary protocols,\n\n- it implements a `capability based approach`_ to isolate actors,\n using membranes (again, the ideas are due to `@dalnefre`_ and\n `@tristanls`_). The semantics of membranes may differ between\n ``tartpy`` and ``tartjs``.\n\nInstalling\n==========\n\nInstall with::\n\n $ pip install git+https://github.com/waltermoreira/tartpy\n\nor clone this repository and install with ``python3 setup.py install``::\n\n $ git clone https://github.com/waltermoreira/tartpy\n $ cd tartpy\n $ python3 setup.py install\n\nTest\n====\n\nRun tests with::\n\n $ python3 setup.py test\n\n\nExamples\n========\n\nRun example with:\n\n.. code-block:: bash\n\n python3 tartpy/example.py\n\nThere is also an `IPython notebook`_ showing the basic properties of actors.\n\nThe project `actor_model`_ contains slides and IPython notebooks from\na talk presented at TACC_ in April 17, 2014.\n\n\nErlang Challenge\n================\n\nCreate a ring of ``M`` actors, sending ``N`` messages around the ring:\n\n.. code-block:: bash\n\n python3 tartpy/erlang_challenge.py M N\n\nBenchmarks\n----------\n\nFor ``M = 100000`` and ``N = 10``::\n\n Starting 100000 actor ring\n Construction time: 1.5192079544067383 seconds\n Loop times:\n 0.7743091583251953 seconds\n 0.7793149948120117 seconds\n 0.7702958583831787 seconds\n 0.7602570056915283 seconds\n 0.7704610824584961 seconds\n 0.779731035232544 seconds\n 0.7654228210449219 seconds\n 0.7625432014465332 seconds\n 0.7740719318389893 seconds\n 0.7699680328369141 seconds\n Average: 0.7706375122070312 seconds\n\n.. _Actor Model: http://en.wikipedia.org/wiki/Actor_model\n.. _tart.js: https://github.com/organix/tartjs\n.. _@dalnefre: https://github.com/dalnefre\n.. _@tristanls: https://github.com/tristanls\n.. _capability based approach: http://en.wikipedia.org/wiki/Capability-based_security\n.. _IPython notebook: http://nbviewer.ipython.org/github/waltermoreira/tartpy/blob/master/demo/tartpy_demo.ipynb\n.. _actor_model: https://github.com/waltermoreira/actor_model\n.. _TACC: https://www.tacc.utexas.edu/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/waltermoreira/tartpy", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "tartpy", "package_url": "https://pypi.org/project/tartpy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/tartpy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/waltermoreira/tartpy" }, "release_url": "https://pypi.org/project/tartpy/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Tiny Actor Run-Time in Python.", "version": "0.2.1" }, "last_serial": 1073422, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "b6a3812680a0eaf8cd9ae1dc8f0da076", "sha256": "ab471e6fd0d2b0c31c2da4c30ab432227488f2168d8c1f4c32fd89e30ede9365" }, "downloads": -1, "filename": "tartpy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b6a3812680a0eaf8cd9ae1dc8f0da076", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 14454, "upload_time": "2014-04-27T22:00:19", "url": "https://files.pythonhosted.org/packages/5f/b9/63bd6320d0f56ba0837b54adaf09fe6aa961d1e49e8e044b7b6d5874259c/tartpy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fb1b817c23e0d06cb280a8c0d5d3c8f", "sha256": "b6341c6f7d4abe4b20facaa11b65ac23bea84c5c53b2f2301bb3db4604cdfe72" }, "downloads": -1, "filename": "tartpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8fb1b817c23e0d06cb280a8c0d5d3c8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11226, "upload_time": "2014-04-27T21:58:42", "url": "https://files.pythonhosted.org/packages/c9/72/5639c9dfe4fd9dd03fdf71917043fc653ba22f5752a6623c99e06e859495/tartpy-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b6a3812680a0eaf8cd9ae1dc8f0da076", "sha256": "ab471e6fd0d2b0c31c2da4c30ab432227488f2168d8c1f4c32fd89e30ede9365" }, "downloads": -1, "filename": "tartpy-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b6a3812680a0eaf8cd9ae1dc8f0da076", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 14454, "upload_time": "2014-04-27T22:00:19", "url": "https://files.pythonhosted.org/packages/5f/b9/63bd6320d0f56ba0837b54adaf09fe6aa961d1e49e8e044b7b6d5874259c/tartpy-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fb1b817c23e0d06cb280a8c0d5d3c8f", "sha256": "b6341c6f7d4abe4b20facaa11b65ac23bea84c5c53b2f2301bb3db4604cdfe72" }, "downloads": -1, "filename": "tartpy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "8fb1b817c23e0d06cb280a8c0d5d3c8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11226, "upload_time": "2014-04-27T21:58:42", "url": "https://files.pythonhosted.org/packages/c9/72/5639c9dfe4fd9dd03fdf71917043fc653ba22f5752a6623c99e06e859495/tartpy-0.2.1.tar.gz" } ] }