Ironclad

Ironclad is an Open Source project started by Resolver Systems. Its aim is to make CPython C Extensions usable from IronPython.

Contents

The problem

IronPython is a great addition to the stable of Python interpreters. It supports all of the Python language's syntax, it interoperates cleanly with Microsoft's .NET environment, and most of the Python standard libraries work too.

The problem is that "most". While IronPython can handle any Python library that is written in pure Python, some of the existing libraries - normally for performance reasons - have portions that are written in C. And these libraries do not work with IronPython.

For many users of IronPython this doesn't matter too much. There's a lot you can do with the pure Python parts of the standard APIs, and many of those that do not work have perfectly good .NET equivalents that require minimal learning.

However, having to port existing code from Python libraries to .NET ones is a pain, and for some of the best libraries - NumPy being a shining example - there are no good, easily-available .NET alternatives.

The solution

Ironclad is a project to let IronPython users use CPython C Extensions by acting as the glue between the IronPython interpreter and these extensions. It's being developed by Resolver Systems - though anyone is welcome to join in - and is available under the MIT License, so you can use it for free with any IronPython project, not just with our products.

Progress

Our first target with Ironclad was to get a simple C Extension working - diving straight in and trying to handle something big like NumPy didn't sound like a good idea! Instead, we picked bz2, which is a simple set of compression utilities. On 6 June 2008 we released v0.4, which allows you to import and use all of bz2.

On 20 August 2008 we released Ironclad version 0.5, which is capable of importing most of numpy. There's one line we just can't handle at the moment, and we fake out several modules on which parts of numpy depend; however, it is now possible to do a few interesting things with integer arrays. Floating-point arrays are functional (in a very narrow sense) but need more work before they're actually useful.

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 - a low-volume forum for discussion of the project and its progress. For anti-spam reasons you have to say why you're interested in the project when you sign up to the list, but that means you just need to specify a reason that differentiates your reasons for joining the list from a spambot's reasons...

If you've any questions about the project, please get in touch - the public mailing list is best, but if you want to post questions in a more private forum please feel free to contact us directly on support@resolversystems.com.


Comments

If you have comments, questions or suggestions about any of the Resolver One documentation, please post them to the Documentation Suggestions Forum.

Retrieved from "http://www.resolversystems.com/documentation/index.php/Ironclad"

This page has been accessed 1,069 times. This page was last modified 10:56, 22 August 2008.

This page: Printable version | View source | Discuss this page | Page history | What links here | Related changes


This Wiki: Special pages | Disclaimers | Privacy policy | Recent changes | Log in / create account

Powered by MediaWiki