Ironclad is an Open Source project, sponsored by Resolver Systems. Its aim is to make CPython C Extensions usable from IronPython. Resolver One includes Ironclad to provide access to C extensions from your spreadsheets.

The Challenge

IronPython is a great addition to the stable of Python interpreters:

  • It supports all of the Python syntax.
  • It interoperates cleanly with the Microsoft .NET environment.
  • It works with most of the Python standard libraries.

The challenge is set by the "most" in that last point.

IronPython handles any Python library that is written in pure Python. Unfortunately, some of the existing libraries — normally for performance reasons — have portions written in C. It is these libraries that do not work with IronPython.

Most IronPython users don't care about this drawback — there's so much you can do with the pure Python parts of the standard APIs, and those that don't work often have perfectly good .NET equivalents.

However, it's a pain to have to port existing code from Python libraries to .NET ones. Worse, some of the best libraries, NumPy being a shining example, have no good, easily-available .NET alternatives.

The Solution

Ironclad enables IronPython users to use CPython C Extensions. It achieves this by acting as the glue between the IronPython interpreter and these extensions.

Ironclad is being developed by Resolver Systems, though anyone is welcome to join in. It's available under the MIT License, so you can use it for free with any IronPython project, and not just with ours.


Because NumPy is the most popular C extension, most of the work on Ironclad has been devoted to making it work. The current release, 0.8.5, supports most of it — the only exceptions being memory-mapped files (currently under development), Unicode data, and the numpy.distutils package.

How to get it and how to join in

There are two useful resources:

  • The project page, where all of the source code is kept.
  • The mailing list, which is a low-volume forum for discussion of the project and its progress, and is also the best place to get technical support. For anti-spam reasons you need to state why you're interested in the project when you sign up to the list, but don't fret - that's just to prove you're human, or at least sentient!