Skip to content
Christian Tismer-Sperling edited this page Dec 24, 2022 · 15 revisions

About Stackless

An introduction for newcomers

Stackless Python is an enhanced version of the Python programming language. It allows programmers to reap the benefits of thread-based programming without the performance and complexity problems associated with conventional threads. The microthreads that Stackless adds to Python are a cheap and lightweight convenience which can if used properly, give the following benefits:

  • Improved program structure.
  • More readable code.
  • Increased programmer productivity.

Features

For all the convenience gained through using Stackless, there is really only a minimal amount of functionality exposed through the stackless module. You can get more familiar with these aspects by reading the information provided in the following pages:

  • Microthreads: tasklets wrap functions allowing them to be launched as microthreads.
  • Channels channels can be used for bidirectional communication between tasklets.
  • Scheduling a round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively.
  • Serialisation: tasklets can be serialised to disk through pickling for later resumption of execution.

Further reading material

  • FAQ frequently asked questions.
  • Examples: useful or descriptive pieces of code that shows Stackless functionality in use.
  • Idioms common patterns in using Stackless Python in code.
  • Applications some of the businesses and projects that Stackless Python has been used by.

Getting started

Downloads

Our download page provides released source archives and a few pre-compiled installers [*]. Alternatively you fetch the latest source from this Git repository.

If you need to compile your own copy from source, simply follow the instructions in the README file of the source code. The installation process doesn't differ from regular C-Python.

Learning to use Stackless

There are currently five main places that you can look for information on how to use Stackless:

Please feel free to email the mailing list with any questions you may have or to ask in the IRC room.

Very old and outdated documentation can also be found on the original Stackless site and in the paper Continuations and Stackless Python.

Stackless Development

If you found a bug, want to browse the source code, or have a pull request, have a look at the Stackless project page at GitHub.

If you are a Stackless core developer, you may be interested in the following pages:

  1. Release Process

Support Stackless!

Developing Stackless into a rock solid basis for applications is a lot of hard work and it needs more Sprints and much of my personal time. You can help me by sending money. The more money I get for working on Stackless, the more I can reduce work on other projects, since I have to feed a big family.

A number of people said that they would like to sponsor me with a little amount if it were easy to do. Therefore, I signed up with PayPal, where you can send your contribution quite easily:

<- please click here for PayPal!

Please enter a note whether you would like to be listed on the sponsorship page. Thanks in advance!

Acknowledgements

I wish to thank Michael Hudson, Sam Rushing and Will Ware for their help on the Linux build and for their valuable input. Just van Rossum and Mike Fletcher for working with Will on the Microthreads. Stephen R. Figgins and David Mertz for their articles, and Cameron Laird for preparing even an article series. Gordon McMillan for his nice introduction, and for not yet writing the PEPs (you know what I mean :), CCPGames for their ongoing sponsorship, IronPort for hiring me part-time, Bernd Rinn for building RPM files, all the many other which I forgot to add to this page...

... and Guido van Rossum for still not sending the Spanish Inquisition.

[*] Many years ago we used to provide precompiled binaries, suitable to install over those in your existing Python installation. This installation method is now deprecated.
[†] The original site is offline, the link points to a copy at the Internet Archive Wayback Machine. The last spapshot of the website can be found here: Last Site View.
Clone this wiki locally