# 3.12 `cPickle` -- Alternate implementation of `pickle`

The `cPickle` module provides a similar interface and identical functionality as the `pickle` module, but can be up to 1000 times faster since it is implemented in C. The only other important difference to note is that `Pickler()` and `Unpickler()` are functions and not classes, and so cannot be subclassed. This should not be an issue in most cases.

The format of the pickle data is identical to that produced using the `pickle` module, so it is possible to use `pickle` and `cPickle` interchangeably with existing pickles.

(Since the pickle data format is actually a tiny stack-oriented programming language, and there are some freedoms in the encodings of certain objects, it's possible that the two modules produce different pickled data for the same input objects; however they will always be able to read each other's pickles back in.)