Ironpython

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks.

The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

IronPython
Original author(s)Jim Hugunin, Microsoft
Developer(s)Dino Viehland,
.NET Foundation
Initial releaseSeptember 5, 2006; 17 years ago (2006-09-05)
Stable release
3.4.1 / July 12, 2023; 9 months ago (2023-07-12)
Preview release
3.4.0-beta1 / April 30, 2022; 23 months ago (2022-04-30)
Repository
Written inC#
Operating systemWindows, Linux, macOS
Platform.NET Framework, .NET, Mono
TypePython programming language implementation
LicenseApache License 2.0
Websiteironpython.net Edit this on Wikidata

IronPython is written entirely in C#, although some of its code is automatically generated by a code generator written in Python.

IronPython is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages. The DLR is part of the .NET Framework 4.0 and is also a part of Mono since version 2.4 from 2009. The DLR can also be used as a library on older CLI implementations.

Status and roadmap

Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 was released on December 10, 2008. After version 1.0 it was maintained by a small team at Microsoft until the 2.7 Beta 1 release. Microsoft abandoned IronPython (and its sister project IronRuby) in late 2010, after which Hugunin left to work at Google. The project is currently maintained by a group of volunteers at GitHub.

  • Release 2.0, released on December 10, 2008, and updated as 2.0.3 on October 23, 2009, targets CPython 2.5. IronPython 2.0.3 is only compatible up to .NET Framework 3.5.
  • Release 2.6, released on December 11, 2009, and updated on April 12, 2010, targets CPython 2.6. IronPython 2.6.1 versions is binary compatible only with .NET Framework 4.0. IronPython 2.6.1 must be compiled from sources to run on .NET Framework 3.5. IronPython 2.6.2, released on October 21, 2010, is binary compatible with both .NET Framework 4.0 and .NET Framework 3.5.
  • Release 2.7 was released on March 12, 2011 and it targets CPython 2.7.
  • Release 2.7.1 was released on October 21, 2011 and it targets CPython 2.7.
  • Release 2.7.2.1 was released on March 13, 2012. It enables support for ZIP file format libraries, SQLite, and compiled executables.
  • Release 2.7.4 was released on September 7, 2013.
  • Release 2.7.5 was released on December 6, 2014 and mostly consists of bug fixes.
  • Release 2.7.6 was released on August 21, 2016 and only consists of bug fixes.
  • Release 2.7.7 was released on December 7, 2016 and only consists of bug fixes.
  • Release 2.7.8 was released on February 16, 2018 and consists of bug fixes, reorganized code, and an updated test infrastructure (including significant testing on Linux under Mono). It is also the first release to support .NET Core.
  • Release 2.7.9 was released on October 9, 2018 and consists of bug fixes, reorganized code. It is intended to be the last release before IronPython 3.
  • Release 2.7.10 was released on April 27, 2020 and adds .NET Core 3.1 support.
  • Release 2.7.11 was released on November 17, 2020 and resolves issues when running on .NET 5.
  • Release 2.7.12 was released on January 21, 2022 and resolves issues with .NET 6 and removes support for .NET core 2.1
  • Release 3.4.0 was released on December 12, 2022 and is the first release to support Python 3.x.

Differences with CPython

There are some differences between the Python reference implementation CPython and IronPython. Some projects built on top of IronPython are known not to work under CPython. Conversely, CPython applications that depend on extensions to the language that are implemented in C are not compatible with IronPython , unless they are implemented in a .NET interop. For example, NumPy was wrapped by Microsoft in 2011, allowing code and libraries dependent on it to be run directly from .NET Framework.

Silverlight

IronPython is supported on Silverlight (which is deprecated by Microsoft and already has lost support in most web browsers). It can be used as a scripting engine in the browser just like the JavaScript engine. IronPython scripts are passed like simple client-side JavaScript scripts in