IronRuby

.NET implementation of Ruby


title: "IronRuby" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["ruby-(programming-language)", ".net-programming-languages", "beta-software", "free-software-programmed-in-c-sharp", "microsoft-free-software", "microsoft-programming-languages", "software-using-the-apache-license", "2007-software"] description: ".NET implementation of Ruby" topic_path: "linguistics" source: "https://en.wikipedia.org/wiki/IronRuby" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary .NET implementation of Ruby ::

::data[format=table title="Infobox software"]

FieldValue
nameIronRuby
logoIronRuby Logo.png
authorMicrosoft Dynamic Language Runtime Team
developer.NET Foundation
released
latest release versionIronRuby 1.0
latest release date
latest preview versionIronRuby 1.1.3
latest preview date
repo
programming_languageC#
operating systemWindows, Linux, macOS
platform.NET Framework, Mono
genreRuby programming language compiler{{cite web
urlhttp://blogs.msdn.com/somasegar/archive/2007/07/23/early-look-at-ironruby.aspx
titleEarly look at IronRuby
authorS. Somasegar
author-linkS. Somasegar
access-dateJuly 25, 2007}}{{cite web
urlhttp://rubyforge.org/projects/ironruby/
titleRubyForge: IronRuby: Project Info
access-dateSeptember 7, 2007
archive-urlhttps://web.archive.org/web/20160925061950/http://rubyforge.org/projects/ironruby/
archive-dateSeptember 25, 2016
url-statusdead
licenseApache License 2.0
website
::

| name = IronRuby | logo = IronRuby Logo.png | screenshot = | caption = | author = Microsoft Dynamic Language Runtime Team | developer = .NET Foundation | released = | latest release version = IronRuby 1.0 | latest release date = | latest preview version = IronRuby 1.1.3 | latest preview date = | repo = | programming_language = C# | operating system = Windows, Linux, macOS | platform = .NET Framework, Mono | genre = Ruby programming language compiler{{cite web | url = http://blogs.msdn.com/somasegar/archive/2007/07/23/early-look-at-ironruby.aspx | title = Early look at IronRuby | author = S. Somasegar | author-link = S. Somasegar | access-date = July 25, 2007}}{{cite web | url = http://rubyforge.org/projects/ironruby/ | title = RubyForge: IronRuby: Project Info | access-date = September 7, 2007 | archive-url = https://web.archive.org/web/20160925061950/http://rubyforge.org/projects/ironruby/ | archive-date = September 25, 2016 | url-status = dead | license = Apache License 2.0 | website = IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET Framework. It 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 project is currently inactive, with the last release of IronRuby (version 1.1.3) being in March 2011.

History

On April 30, 2007, at MIX 2007, Microsoft announced IronRuby, which uses the same name as Wilco Bauwer's IronRuby project with permission. It was planned to be released to the public at OSCON 2007.

On July 23, 2007, as promised, John Lam and the DLR Design Team presented the pre-Alpha version of the IronRuby compiler at OSCON. He also announced a quick timeline for further integration of IronRuby into the open source community.

On August 31, 2007, John Lam and the DLR Design Team released the code in its pre-alpha stage on RubyForge.{{cite web |url = http://www.iunknown.com/2007/08/ironruby-on-rub.html |title = IronRuby on Rubyforge! |quote = Today, you must check the source code out of the IronRuby Subversion repository on Rubyforge. You will need a Subversion client; we recommend TortoiseSVN. To build the sources from the command line, you must also have Ruby installed on your computer already |last = Lam |first = John |access-date = August 31, 2007 |url-status = dead |archive-url = https://web.archive.org/web/20070903213020/http://www.iunknown.com/2007/08/ironruby-on-rub.html |archive-date = September 3, 2007 |url = http://rubyforge.org/pipermail/ironruby-core/2008-April/001507.html |title = Regarding IronRuby... How true it sounds from this blog |quote = The DLR does not accept contributions from the community (...) Today we do not push to SVN on every successful SNAP check-in |last = Lam |first = John |date = April 29, 2008 |access-date = May 25, 2008 |archive-url = https://web.archive.org/web/20090316034858/http://rubyforge.org/pipermail/ironruby-core/2008-April/001507.html |archive-date = March 16, 2009 |url-status = dead

On July 24, 2008, the IronRuby team released the first binary alpha version, in line with OSCON 2008.{{cite web |url = http://www.iunknown.com/2008/07/ironruby-at-oscon.html |title = IronRuby at OSCON |last = Lam |first = John |quote = We're shipping our first binary release. In this package, we’re taking a “batteries included” approach and shipping the Ruby standard libraries in it |date = July 24, 2008 |access-date = August 4, 2008 |url-status = dead |archive-url = https://web.archive.org/web/20080807064758/http://www.iunknown.com/2008/07/ironruby-at-oscon.html |archive-date = August 7, 2008

The team actively worked to support Rails on IronRuby.{{cite web |url = http://en.oreilly.com/rails2008/public/schedule/detail/2056 |title = IronRuby on Rails |access-date = May 25, 2008 |archive-date = May 29, 2009 |archive-url = https://web.archive.org/web/20090529055728/http://en.oreilly.com/rails2008/public/schedule/detail/2056 |url-status = dead |url = http://rubyforge.org/pipermail/ironruby-core/2008-May/001911.html |title = IronRuby r112 is out |last = Lam |first = John |date = May 24, 2008 |access-date = May 25, 2008 |archive-url = https://web.archive.org/web/20090316133356/http://rubyforge.org/pipermail/ironruby-core/2008-May/001911.html |archive-date = March 16, 2009 |url-status = dead |url = http://rubyforge.org/pipermail/ironruby-core/2008-May/001909.html |title = IronRuby / Rails Question |last = Lam |first = John |quote = I don't think we're near the end game yet :) We're barely able to run Rails functional tests now, and there's a lot more library work to be done before we can start thinking about deployment |date = May 25, 2008 |access-date = May 25, 2008 |archive-url = https://web.archive.org/web/20090317090824/http://rubyforge.org/pipermail/ironruby-core/2008-May/001909.html |archive-date = March 17, 2009 |url-status = dead

On May 21, 2009, they released 0.5 version in conjunction with RailsConf 2009. With this version, IronRuby could run some Rails applications, but still not on a production environment.{{cite web |url = http://blog.jimmy.schementi.com/2009/05/ironruby-at-railsconf-2009.html |title = IronRuby at RailsConf 2009 | last=Schementi|first=Jimmy |quote = IronRuby running Rails is not new, but doing it well or completely – is. IronRuby can now run real Rails applications, rather than just toy-hello-world examples. This does not mean IronRuby on Rails is ready for production, but it’s a great measure of forward progress |date=May 25, 2008 |access-date = May 25, 2008}}

Version 0.9 was announced as OSCON 2009.{{cite web |url = http://en.oreilly.com/oscon2009/public/schedule/detail/7965 |title = IronRuby 0.9 |date = July 23, 2009 |access-date = August 3, 2009 |archive-date = May 12, 2009 |archive-url = https://web.archive.org/web/20090512192141/http://en.oreilly.com/oscon2009/public/schedule/detail/7965 |url-status = dead |url = http://antoniocangiano.com/2009/08/03/performance-of-ironruby-ruby-on-windows/ |title = Comparing the performance of IronRuby, Ruby 1.8 and Ruby 1.9 on Windows | last=Cangiano|first=Antonio |date = August 3, 2009 |access-date = August 3, 2009}} Version 1.0 RC1 became available on November 20, 2009.{{cite web |url = http://ironruby.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35312 |title = IronRuby 1.0RC1 |date = November 20, 2009 |access-date = December 29, 2009 |archive-date = December 21, 2009 |archive-url = https://web.archive.org/web/20091221031512/http://ironruby.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35312 |url-status = dead

Version 1.0 became available on April 12, 2010, in two different versions:

  • The preferred one, which runs on top of .NET 4.0.
  • A version with more limited features, which ran on top of .NET 2.0. This version was the only one compatible with Mono.{{cite web |url = http://ironruby.codeplex.com/releases/view/25901 |title = IronRuby 1.0 release notes |date = April 12, 2010 |quote = IronRuby now comes in two flavors - one that runs on top of .NET 4.0, and one that runs on any earlier framework starting with .NET 2.0 SP1. The .NET 4.0 flavor features faster startup time, compatibility with C#’s dynamic keyword, and access to the new features in .NET 4.0. So, the .NET 4.0 flavor is the preferred download now, as the Microsoft .NET Framework 4.0 is publicly available as of today. For Mono compatibility, use the zip file release for 2.0 SP1. |access-date = April 17, 2010 |archive-date = April 16, 2010 |archive-url = https://web.archive.org/web/20100416135406/http://ironruby.codeplex.com/releases/view/25901 |url-status = dead

The IronRuby team planned to support Ruby 1.8.6 only for 1.0 point releases, and 1.9 version only for upcoming 1.x releases, skipping support for Ruby 1.8.7.{{cite web |url = http://rubyforge.org/pipermail/ironruby-core/2010-February/006301.html |title = MRI 1.8.7 compatibility |date = February 12, 2010 |access-date = March 6, 2010 |archive-date = September 28, 2011 |archive-url = https://web.archive.org/web/20110928023501/http://rubyforge.org/pipermail/ironruby-core/2010-February/006301.html |url-status = dead |url = http://rubyforge.org/pipermail/ironruby-core/2010-February/006323.html |title = MRI 1.8.7 compatibility |date = February 14, 2010 |quote = IronRuby 1.0.x releases: ONLY ruby-1.8.6 compatible; IronRuby 1.x releases: ONLY ruby-1.9 compatible |access-date = March 6, 2010 |archive-date = September 28, 2011 |archive-url = https://web.archive.org/web/20110928023507/http://rubyforge.org/pipermail/ironruby-core/2010-February/006323.html |url-status = dead

In July 2010, Microsoft let go Jimmy Schementi, one of two remaining members of the IronRuby core team, and stopped funding the project.{{cite web | url=http://www.infoworld.com/article/2625762/ruby/it-s-not-you--it-s-me--microsoft-kills-ironruby.html | title=It's not you, it's me: Microsoft kills IronRuby | publisher=InfoWorld | date = August 11, 2010 | access-date=December 28, 2012}}{{cite web | url=http://blog.jimmy.schementi.com/2010/08/start-spreading-news-future-of-jimmy.html | title="Start spreading the news": the future of Jimmy and IronRuby | last=Schementi|first=Jimmy | date = August 6, 2010 | quote=Overall, I see a serious lack of commitment to IronRuby, and dynamic language on .NET in general. At the time of my leaving Tomas and myself were the only Microsoft employees working on IronRuby | access-date=December 28, 2012}} In October 2010 Microsoft announced the Iron projects (IronRuby and IronPython) were being changed to "external" projects and enabling "community members to make contributions without Microsoft's involvement or sponsorship by a Microsoft employee".

The last published release of IronRuby was on March 13, 2011 as version 1.1.3.

Architecture

Mono support

IronRuby may run as well on Mono as it does on Microsoft Common Language Runtime (CLR),{{cite web | url=http://tirania.org/blog/archive/2009/Jul-27.html | title=Improving Mono's compatibility with .NET CLR | author=Miguel de Icaza | author-link=Miguel de Icaza | quote=For as long as we remember, most new versions of IronPython, IronRuby or the Dynamic Language Runtime exposed new missing functionality in Mono | date=July 27, 2009 | access-date=August 3, 2009}} but as the IronRuby team only tests it with the CLR on Windows.,{{cite web |url = http://rubyforge.org/pipermail/ironruby-core/2008-August/002553.html |title = IronRuby and Mono |last = Sanghyeon |first = Seo |date = August 6, 2008 |access-date = September 13, 2008 |url-status = dead |archive-url = https://web.archive.org/web/20090316034903/http://rubyforge.org/pipermail/ironruby-core/2008-August/002553.html |archive-date = March 16, 2009 |url = http://rubyforge.org/pipermail/ironruby-core/2008-September/002787.html |title = IronRuby and Mono |last = Vander Schelden |first = Wim |date = September 4, 2008 |access-date = September 13, 2008 |url-status = dead |archive-url = https://web.archive.org/web/20090316034940/http://rubyforge.org/pipermail/ironruby-core/2008-September/002787.html |archive-date = March 16, 2009 |url = http://rubyforge.org/pipermail/ironruby-core/2009-January/003654.html |title = DLR Daily Builds (including IronRuby) |last = Hall |first = Ben |date = January 23, 2009 |access-date = January 23, 2009 |url-status = dead |archive-url = https://web.archive.org/web/20090315051756/http://rubyforge.org/pipermail/ironruby-core/2009-January/003654.html |archive-date = March 15, 2009 |url = http://rubyforge.org/pipermail/ironruby-core/2009-May/004638.html |title = mono builds |last = Porto Carrero |first = Ivan |date = May 26, 2009 |access-date = June 5, 2009 |url-status = dead |archive-url = https://web.archive.org/web/20120223233113/http://rubyforge.org/pipermail/ironruby-core/2009-May/004638.html |archive-date = February 23, 2012

.NET interoperability

The interoperability between IronRuby classes and regular .NET Framework classes is very limited because many Ruby classes are not .NET classes.{{cite web | url=http://rubyforge.org/pipermail/ironruby-core/2008-December/003390.html | title=Xna+IronRuby+RubyNewb=headache | last=Hagenlocher | first=Curt | date=December 16, 2008 | access-date=December 20, 2008 | archive-url=https://web.archive.org/web/20090316034935/http://rubyforge.org/pipermail/ironruby-core/2008-December/003390.html | archive-date=March 16, 2009 | url-status=dead | url=http://rubyforge.org/pipermail/ironruby-core/2008-December/003378.html | title=WPF databinding with ruby objects | last=Brotherus | first=Robert | date=December 12, 2008 | access-date=December 13, 2008 | archive-url=https://web.archive.org/web/20090325052400/http://rubyforge.org/pipermail/ironruby-core/2008-December/003378.html | archive-date=March 25, 2009 | url-status=dead

Silverlight support

IronRuby was supported on Silverlight. It could be used as a scripting engine in the browser just like the JavaScript engine. IronRuby scripts were passed like simple client-side JavaScript-scripts in ``-tags. It is then also possible to modify embedded XAML markup.

The technology behind this was called Gestalt.{{cite web | url=http://jimmy.schementi.com/2009/07/gestalt-ruby-and-python-in-browser.html | title=Gestalt: Ruby and Python in the browser, again | first=Jimmy|last=Schementin | date=July 22, 2009 | access-date=January 19, 2018}}

::code[lang=xml] //DLR initiation script.

::

The same worked for IronPython.

Testing infrastructure

IronRuby integrated RubySpec, which is a project to write a complete, executable specification for the Ruby programming language. The IronRuby Git repo includes a copy of the RubySpec tests, including the MSpec test framework.{{cite web | url=https://github.com/ironruby/ironruby/wiki/RubySpec | title=RubySpec | website=GitHub | quote=The IronRuby GIT repo includes a copy of the RubySpec tests, including the MSpec test framework, under External.LCA_RESTRICTED\Languages\IronRuby\mspec. This makes it easy to modify existing tests or write new tests, and fix the bugs in the IronRuby sources, all in a single commit to the IronRuby repo.| access-date=October 23, 2010}}

License

IronRuby was previously released under the Microsoft Public License, which is OSI-certified BSD-style license.

On July 16, 2010, Microsoft re-licensed IronRuby along with the DLR under the Apache License 2.0.{{cite web | url=http://ironruby.codeplex.com/license | title=IronRuby License | date=July 16, 2010 | access-date=July 27, 2010 | archive-date=December 6, 2010 | archive-url=https://web.archive.org/web/20101206001330/http://ironruby.codeplex.com/license | url-status=dead

References

References

  1. Wilco Bauwer. "Microsoft's Iron Ruby".
  2. John Lam. "Microsoft and IronRuby".
  3. John Lam. "A First Look at IronRuby".
  4. "New Components and Contributors for IronPython and IronRuby". Microsoft.
  5. (March 13, 2011). "IronRuby 1.1.3". ironruby.codeplex.com.
  6. (September 22, 2015). "Dynamic .NET - Creating Interactive Bing Maps with Silverlight and IronRuby".
  7. [http://ironruby.net/browser/index.html IronRuby in the browser - IronRuby.net]
  8. "Building a WPF Application in IronRuby".
  9. "Silverlight: Embed IronRuby/DLR Scripting within XAML using IValueConverter and Custom UserControl {{!}} Chris Pietschmann". pietschsoft.com.
  10. (April 14, 2010). "After three years effort, Microsoft's open source IronRuby stable and available". Network World.

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

ruby-(programming-language).net-programming-languagesbeta-softwarefree-software-programmed-in-c-sharpmicrosoft-free-softwaremicrosoft-programming-languagessoftware-using-the-apache-license2007-software