Performance
PyPy performance depends greatly on the type of task being performed. The geometric average of all benchmarks is 0.19 or 5.2 times faster than CPython.
PyPy has alpha/beta-level support for the CPython C API, however, as of 1.6 release this feature is not yet complete. Many libraries will require a bit of effort to work, but there are known success stories.
Visit the PyPy speed centerCompatibility
PyPy implements the Python language version 2.7.1. It supports all of the core language, passing Python test suite (with minor modifications that were already accepted in the main python in newer versions). It supports most of the commonly used Python standard library modules.
Read moreFeatures
PyPy 1.8 implements Python 2.7.2 and runs on Intel x86 (IA-32) and x86_64 platforms, with ARM being underway. It supports all of the core language, passing the Python test suite (with minor modifications that were already accepted in the main python in newer versions). It supports most of the commonly used Python standard library modules.
PyPy has alpha/beta-level support for the CPython C API, however, as of 1.8 release this feature is not yet complete. Many libraries will require a bit of effort to work, but there are known success stories.
PyPy's sandboxing is a working prototype for the idea of running untrusted user programs. Unlike other sandboxing approaches for Python, PyPy's does not try to limit language features considered “unsafe”. Instead we replace all calls to external libraries (C or platform) with a stub that communicates with an external process handling the policy.
To run the sandboxed process, you need pypy-sandbox. You also need to get the full source files (step 1 only). Run:
cd pypy/pypy/translator/sandbox pypy_interact.py path/to/pypy-sandbox
You get a fully sandboxed interpreter, in its own filesystem hierarchy (try os.listdir('/')). For example, you would run an untrusted script as follows:
mkdir virtualtmp cp untrusted.py virtualtmp/ pypy_interact.py --tmp=virtualtmp pypy-sandbox /tmp/untrusted.py
Note that the path /tmp/untrusted.py is a path inside the sandboxed filesystem. You don't have to put untrusted.py in the real /tmp directory at all.
To read more about its features, try pypy_interact.py --help.
PyPy is also available in a separate Stackless version that includes support for micro-threads for massive concurrency. Read more about it at the Stackless main site (we provide the same interface as the standard Stackless Python), and at the greenlets page.
PyPy has many secondary features and semi-independent projects. We will mention here:
- .NET backend
- You get a version of pypy-net that runs natively in the .NET/CLI VM. Of particular interest is the cli-jit branch, in which you can make a version of pypy-net which also contains a high-level JIT compiler (it compiles your Python programs Just in Time into CLR bytecodes, which are in turn compiled natively by the VM).
- Java backend
- PyPy can run on the Java VM, but more care is needed to finish this project. Writing a backend for our high-level JIT compiler would be excellent. Contact us!
- Other languages
- We also implemented other languages that makes use of our RPython toolchain: Prolog (almost complete), as well as Smalltalk, JavaScript, Io, Scheme and Gameboy.
In Use

Quora is a continually improving collection of questions and answers created, edited, and organized by everyone who uses it. The most important thing is to have each question page become the best possible resource for someone who wants to know about the question.
We're extremely pleased to announce that, as of early August 2011, Quora has started serving web requests with PyPy. By the time you read this we will have rolled out PyPy to all of our webservers and it will have served millions of requests. When we started the migration to PyPy our goal was to reduce the page load time for our users, and we believe we've accomplished this, benchmarking the site internally has shown a 2x speed increase in page load times, and we've already heard from users that the site feels faster.
Read more