Add in zmq protocol links to feats list
							parent
							
								
									0272936fdc
								
							
						
					
					
						commit
						aace10ccfb
					
				| 
						 | 
				
			
			@ -1,10 +1,9 @@
 | 
			
		|||
|logo| ``tractor``: next-gen Python parallelism
 | 
			
		||||
|logo| ``tractor``: distributed structurred concurrency
 | 
			
		||||
 | 
			
		||||
|gh_actions|
 | 
			
		||||
|docs|
 | 
			
		||||
 | 
			
		||||
``tractor`` is a `structured concurrency`_ (SC), (optionally
 | 
			
		||||
distributed_) multi-processing_ runtime built on trio_.
 | 
			
		||||
``tractor`` is a `structured concurrency`_ (SC), multi-processing_ runtime built on trio_.
 | 
			
		||||
 | 
			
		||||
Fundamentally, ``tractor`` provides parallelism via
 | 
			
		||||
``trio``-"*actors*": independent Python *processes* (currently
 | 
			
		||||
| 
						 | 
				
			
			@ -46,14 +45,25 @@ Features
 | 
			
		|||
- A modular transport stack, allowing for custom interchange formats (eg.
 | 
			
		||||
  as offered from `msgspec`_), varied transport protocols (TCP, RUDP), and
 | 
			
		||||
  OS-env specific higher perf IPC primitives (like shared-mem buffers).
 | 
			
		||||
- Builtin streaming API with task fan-out `broadcasting`_.
 | 
			
		||||
- A "native" and multi-core-safe debugger REPL using `pdbp`_ (a fork
 | 
			
		||||
  & fix of `pdb++`_ thanks to @mdmintz!)
 | 
			
		||||
- optionally distributed_; all IPC and RPC works over multi-host
 | 
			
		||||
  transports the same as for localhost.
 | 
			
		||||
- A high-level builtin streaming API that enables your app to easily
 | 
			
		||||
  leverage the benefits of a "`cheap or nasty`_" `(un)protocol`_.
 | 
			
		||||
- "native UX" for a multicore-safe debugger REPL using `pdbp`_ (a
 | 
			
		||||
  fork & fix of `pdb++`_)
 | 
			
		||||
- "infected ``asyncio``" mode: support for starting each
 | 
			
		||||
  ``tractor.Actor`` to run as a guest on the ``asyncio`` loop
 | 
			
		||||
  allowing us to provide stringent SC-style ``trio.Task``-supervision
 | 
			
		||||
  around any ``asyncio.Task`` spawned via our ``tractor.to_asyncio``
 | 
			
		||||
  APIs.
 | 
			
		||||
- various ``trio`` extension APIs via ``tractor.trionics`` such as,
 | 
			
		||||
  - task fan-out `broadcasting`_,
 | 
			
		||||
  - multi-task-single-resource-caching and fan-out-to-multi ``__aenter__()``
 | 
			
		||||
    APIs for ``@acm`` functions (``contextlib.asynccontextmanager``),
 | 
			
		||||
  - (WIP) a ``TaskMngr``: one-cancels-one style nursery supervisor.
 | 
			
		||||
- a **very naive** and still very much work-in-progress inter-actor
 | 
			
		||||
  `discovery`_ sys with plans to support multiple `modern protocol`_
 | 
			
		||||
  approaches.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Install
 | 
			
		||||
| 
						 | 
				
			
			@ -658,8 +668,12 @@ channel`_!
 | 
			
		|||
.. _trio gitter channel: https://gitter.im/python-trio/general
 | 
			
		||||
.. _matrix channel: https://matrix.to/#/!tractor:matrix.org
 | 
			
		||||
.. _broadcasting: https://github.com/goodboy/tractor/pull/229
 | 
			
		||||
.. _modern procotol: https://en.wikipedia.org/wiki/Rendezvous_protocol
 | 
			
		||||
.. _pdbp: https://github.com/mdmintz/pdbp
 | 
			
		||||
.. _pdb++: https://github.com/pdbpp/pdbpp
 | 
			
		||||
.. _cheap or nasty: https://zguide.zeromq.org/docs/chapter7/#The-Cheap-or-Nasty-Pattern
 | 
			
		||||
.. _(un)protocol: https://zguide.zeromq.org/docs/chapter7/#Unprotocols
 | 
			
		||||
.. _discovery: https://zguide.zeromq.org/docs/chapter8/#Discovery
 | 
			
		||||
.. _guest mode: https://trio.readthedocs.io/en/stable/reference-lowlevel.html?highlight=guest%20mode#using-guest-mode-to-run-trio-on-top-of-other-event-loops
 | 
			
		||||
.. _messages: https://en.wikipedia.org/wiki/Message_passing
 | 
			
		||||
.. _trio docs: https://trio.readthedocs.io/en/latest/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue