# Shed Skin

## An experimental (restricted-Python)-to-C++ compiler

Shed Skin is a transpiler, that can translate pure, but implicitly statically typed Python programs into optimized C++. It can generate stand-alone programs or extension modules that can be imported and used in larger Python programs.

Besides the typing restriction, programs cannot freely use the Python standard library (although about 25 common modules, such as `random` and `re`, are currently supported). Also, not all Python features, such as nested functions and variable numbers of arguments, are supported.

For a set of a 80 non-trivial programs (at over 25,000 lines in total (sloccount)), measurements show a typical speedup of 1-100 times over CPython.

## Documentation

- Shed Skin documentation
  - Introduction
  - Typing restrictions
  - Python subset restrictions
  - Library limitations
  - Installation
    - GNU/Linux
      - From Distribution
      - Manual installation
        - Dependencies
    - OSX
      - Manual installation
        - Dependencies
    - Windows
  - Compiling a standalone program
  - Generating an extension module
    - Limitations
    - Numpy integration
  - Distributing binaries
  - Multiprocessing
  - Calling C/C++ code
    - Standard library
    - Shed Skin types
  - Command-line options
    - analyze
    - translate
    - build
    - run
    - test
  - Performance tips and tricks
    - Performance tips
    - Tricks
  - How to help out in development