Skip to content

Commit

Permalink
Further simplifications
Browse files Browse the repository at this point in the history
  • Loading branch information
goodboy committed Feb 25, 2021
1 parent 6839cba commit 13790de
Showing 1 changed file with 24 additions and 13 deletions.
37 changes: 24 additions & 13 deletions docs/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@

``tractor`` is a `structured concurrent`_ "`actor model`_" built on trio_ and multi-processing_.

We pair structured concurrency with true multi-core Python parallelism;
the aim is to be the multi-processing framework *you always wanted*.
We pair structured concurrency and true multi-core parallelism with
the aim of being the multi-processing framework *you always wanted*.

The first steps to grok ``tractor`` is to get the basics of ``trio`` down.
The first step to grok ``tractor`` is to get the basics of ``trio`` down.
A great place to start is the `trio docs`_ and this `blog post`_.


Expand All @@ -26,14 +26,14 @@ Features
- Infinitely nesteable process trees
- Built-in APIs for inter-process streaming
- A (first ever?) "native" multi-core debugger for Python using `pdb++`_
- (Soon to land) ``asyncio`` support allowing for "infected" actors where
`trio` drives the `asyncio` scheduler via the astounding "`guest mode`_"
- (Soon to land) typed messaging protocols (ex. via ``msgspec``)
- Support for multiple process spawning backends
- A modular transport layer, allowing for custom serialization,
communications protocols, and environment specific IPC primitives


Zombie safe: self-destruct a process tree
-----------------------------------------
``tractor`` (attempts to) protect from zombies, no matter what.
``tractor`` tries to protect you from zombies, no matter what.

.. code:: python
Expand Down Expand Up @@ -90,7 +90,7 @@ it **is a bug**.
--------------------------------
Using the magic of `pdb++`_ and our internal IPC, we've
been able to create a native feeling debugging experience for
any (sub)-process in your ``tractor`` tree.
any (sub-)process in your ``tractor`` tree.

.. code:: python
Expand Down Expand Up @@ -143,11 +143,12 @@ We're hoping to add a respawn-from-repl system soon!

Worker poolz are easy peasy
---------------------------
It seems the initial ask from most new users is "how do I make a worker
pool thing?".
The initial ask from most new users is *"how do I make a worker
pool thing?"*.

``tractor`` is built to handle any SC process tree you can
imagine; the "worker pool" pattern is a trivial special case.
``tractor`` is built to handle any SC (structured concurrent) process
tree you can imagine; a "worker pool" pattern is a trivial special
case.

We have a `full re-implementation <worker_pool>`_ of the std-lib's
``concurrent.futures.ProcessPoolExecutor`` example for reference.
Expand All @@ -169,7 +170,7 @@ Install
-------
No PyPi release yet!

::
From git::

pip install git+git://github.com/goodboy/tractor.git

Expand Down Expand Up @@ -197,6 +198,16 @@ concurrency*, results in systems which fail in predictable and
recoverable ways.


What's on the TODO:
-------------------
Help us push toward the future.

- (Soon to land) ``asyncio`` support allowing for "infected" actors where
`trio` drives the `asyncio` scheduler via the astounding "`guest mode`_"
- Typed messaging protocols (ex. via ``msgspec``)
- Erlang-style supervisors via composed context managers


Feel like saying hi?
--------------------
This project is very much coupled to the ongoing development of
Expand Down

0 comments on commit 13790de

Please sign in to comment.