Ironclad aims, in the long term, to allow IronPython users to transparently import and use any compiled CPython extensions. Ironclad works with IronPython 2 and targets CPython 2.5 on 32-bit Windows; efforts to support other platforms are underway.
Quick Start
- Download the latest binary package
- Unzip it into C:
- cd to C:\ironclad-v0.8.5-bin\build
- run ipy
- import ironclad
If the above steps pass without error, you are ready to import CPython extensions. Assuming you have a CPython 2.5 install located at C:\Python25, add the following locations to your sys.path:
- C:\Python25\Dlls
- C:\Python25\Lib
- C:\Python25\Lib\site-packages
...and you should be able to import and use many of the extensions in your CPython install.
- import bz2
- import numpy
To enable memory-mapped file support, call ironclad.patch_native_filenos(); this will patch file and open, and several functions on the os module, such that IronPython uses the CPython file type instead of its own.
See the wiki FrontPage for further instructions.
Progress
The latest release is v0.8.5, which should now be useful to quite a lot of people. The following packages have been confirmed to work (to a greater or lesser extent, as qualified parenthetically):
- numpy 1.3 (over 1100 tests pass; Unicode data and numpy.distutils don't work).
- scipy 0.7 (over 1500 tests pass; some parts are extremely slow, while others are pretty fast)
- h5py 1.1 (113 tests pass; to make it work with the ironclad v0.8.5 release, please add .test_h5f.TestH5F.test_get_obj_ids to the blacklist)
- matplotlib 0.98 (ps backend can produce simple plots; pdf/svg backends should work as well, given a compatible zlib)
- bz2 from Python 2.5 (well tested)
- _hashlib, _elementtree, _socket, _ssl, winsound from Python 2.5 (import cleanly; not otherwise tested to any degree of confidence)
Other
Ironclad basically works by reimplementing the Python C API in C#, and performing a little bit of underhanded trickery to convince .pyd files to talk to our version of the API. The source distribution includes full tests and pretty good docs explaining how it works.
Ironclad is fully open source, but development is sponsored by Resolver Systems.