{{{ #!rst =============== 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 nformation provided in the following pages: - Microthreads_: tasklets wrap functions allowing them to be launched as microthreads. - `Channels`:trac:: channels can be used for bidirectional communication between tasklets. - `Scheduling`:trac:: 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`:trac:: frequently asked questions. - Examples_: useful or descriptive pieces of code that shows Stackless functionality in use. - `Idioms`:trac:: common patterns in using Stackless Python in code. - `Applications`:trac:: some of the businesses and projects that Stackless Python has been used by. Getting started =============== Installation ------------ You either need to compile your own copy from the source code in the `Mercurial`:trac: repository or alternatively obtain a provided `precompiled binaries`_, especially if you use Microsoft Windows, to install over those in your existing Python installation. Learning to use Stackless ------------------------- There are currently five main places that you can look to for information on how to use Stackless: - The documentation_. - The tutorial "`Introduction to Concurrent Programming with Stackless Python`_", written by Grant Olson. [mirror_] - The mailing list `archives`_. Please feel free to email the `mailing list`_ with any questions you may have or to ask in the `IRC`:trac: room. Old documentation can also be found on the `original Stackless site`_. Support Stackless! ================== Developing Stackless into a rock solid basis for applications is a lot of hard work and it needs more `Sprints`:trac: 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: .. raw:: html