You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

Okay I'm hooked! Tell me more!

Now Right now Nuitka is a good replacement for the Python interpreter and compiles every construct that all relevant CPython versions, and even irrelevant ones, like 2.6 and 3.3 offer. It translates the Python into a C program that then is linked against libpython to execute in the same way as CPython does, in a very compatible way. It is somewhat faster than CPython already, but currently it doesn't make all the optimizations possible, but a 312% factor on pystone is a good start (number is from version 0.6.0 and Python 2.7), and many times this is not generally achieved yet.

Future In the future, Nuitka will be able to use type inference and guessing by doing whole program analysis and then applying the results to perform as many calculations as possible. It will do this - where possible - without accessing libpython but in C with its native data types. It will also be possible to integrate ctypes based bindings without the normal speed penalty (the compiled program will call the C library directly without the use of ctypes run time). And finally you will be able to use a hints module to tell Nuitka about type information that it cannot guess.

Now vs. Future or The Plan It's a road with milestones. Feature parity with Python, understand all the language construct and behave absolutely compatible. Create the most efficient native code from this. This means to be fast with the basic Python object handling. Then do constant propagation, determine as many values and useful constraints as possible at compile time and create more efficient code. Type inference, detect and special case the handling of strings, integers, lists in the program Add interfacing to C code, so Nuitka can turn a ctypes binding into an efficient binding as written with C. Add hints module with a useful Python implementation that the compiler can use to learn about types from the programmer.