Install#

tractor is still in an alpha-near-beta-stage for many of its subsystems, however we are very close to having a stable lowlevel runtime and API. Expect the occasional rough edge (and feel free to report it!).

Supported platforms#

  • python: >=3.13,<3.15 - yes, we ride near the front of the release train; 3.14 additionally unlocks the experimental PEP-734 sub-interpreter spawn backend,

  • linux: the primary development and CI platform,

  • macos: officially supported,

  • windows: currently untested - we disabled CI-testing on windows a while back and haven’t had the cycles to revive it. It mostly worked historically; if you’re a windows person we’d love a hand getting it back in the test matrix.

With uv (preferred)#

We use the very hip uv for project mgmt and recommend you do too. Add tractor to your project:

uv add tractor

or, since the git main branch is often much further ahead than any latest release (see the PyPi note below), track main directly:

uv add "tractor @ git+https://github.com/goodboy/tractor.git"

From PyPi#

We ofc also offer “releases” on PyPi:

pip install tractor

Just note that YMMV since main is usually well ahead of the latest published alpha; when in doubt go with a git install as per above (or hack from source as per below).

From source#

To run the bundled examples in-tree, or to start hacking on the code base, clone and sync a dev env:

git clone https://github.com/goodboy/tractor.git
cd tractor
uv sync --dev
uv run python examples/rpc_bidir_streaming.py

Consider activating a virtual/project-env before starting to hack on the code base:

# you could use plain ol' venvs
# https://docs.astral.sh/uv/pip/environments/
uv venv tractor_py313 --python 3.13

# but @goodboy prefers the more explicit (and shell agnostic)
# https://docs.astral.sh/uv/configuration/environment/#uv_project_environment
UV_PROJECT_ENVIRONMENT="tractor_py313"

# hint hint, enter @goodboy's fave shell B)
uv run --dev xonsh

See also

All set? Go boot a process tree in Quickstart. And if the install fights you, swing by the matrix channel and we’ll sort it out.