A pure-python, ctypes based, PEP 249 compliant MySQL driver.
Switch branches/tags
Nothing to show
Pull request Compare This branch is 2 commits behind EnTeQuAk:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A ctypes implementation of a PEP 249 (DB API 2.0) compliant database driver for use with MySQL. It is importable as MySQLdb for compatibility with the extremely common C-extension, by the same name. It is tested under CPython 2.6, CPython 2.7, and PyPy 1.5.

There are a number of things to note:

  • This was originally developed for use with PyPy, though it works with both CPython and PyPy, where performance is concerned it will try to favor PyPy.
  • The original MySQLdb, with which we attempt to remain compatible, is not always 100% in line with the DB API spec, where it was necessary for use with the project this was developed for, we've followed MySQLdb rather than the spec, sadly.
  • Not all errors are appropriately upgraded to a DatabaseError subclass (e.g. ProgrammingError or IntegrityError) these will be done on an ongoing bases, as tests for the conditions (or reasons they are impossible to write) are developed.
  • This project is strictly test-driven-developed, if you're interested in contributing, we appreciate patches, but please make sure they include tests.

Tests are run using py.test, you can invoke it directly on the command line:

$ py.test

Or use tox to automatically test it against CPython 2.6 and 2.7, as well as PyPy:

$ tox