Presumably that workflow would work. An alternative is to write a thin Ruby or C# wrapper that wraps the native HTTP parser using either FFI (http://www.igvita.com/2009/01/15/bridging-mri-jruby-rubinius-with-ffi/ or http://www.javaworld.com/community/?q=node/1722), or pinvokes. IronRuby supports neither FFI nor Ruby/dl. So you would have to use pinvokes from C# for now.
FWIW, another alternative is implementing something like IronClad (http://code.google.com/p/ironclad/) which would allow native extensions to work as is, but this is a large feature. -----Original Message----- From: ironruby-core-boun...@rubyforge.org [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Nathan Stults Sent: Tuesday, October 06, 2009 6:10 PM To: ironruby-core@rubyforge.org Subject: Re: [Ironruby-core] Native Extensions Thanks for the tip. It looks like the Http Parser is generated via Ragel, and it appears there is a Java version of the language file, so theoretically all I should have to do is learn Ragel and port that file to C#, piece of cake :) Then I suppose I'd need a patched version of mongrel that required the new .NET HTTP parser dll instead of the C version? Is that how that would work? -----Original Message----- From: ironruby-core-boun...@rubyforge.org [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Jimmy Schementi Sent: Tuesday, October 06, 2009 6:00 PM To: ironruby-core@rubyforge.org Subject: Re: [Ironruby-core] Native Extensions Native extension support is not on the roadmap for 1.0. Win32OLE support is actually in there now, because of the Dynamic Language Runtime's support for dispatching to COM objects. So IronRuby's version of win32ole.rb uses IronRuby's OLE support, rather than depending on native code. The current work-around for libraries which use native code to communicate with the OS or Ruby is to rewrite those using .NET so IronRuby can use them. Mongrel is actually \mostly Ruby code, as most Ruby libraries which use native code; there is usually a very small part of the library which depends on native code. For Mongrel, the HTTP 1.1 parser is the only native piece; rewriting that in C# would allow you to run Mongrel on .NET. IMO, after 1.0 would be the time to consider supporting the native Ruby API. ~Jimmy ________________________________________ From: ironruby-core-boun...@rubyforge.org [ironruby-core-boun...@rubyforge.org] on behalf of Nathan Stults [li...@ruby-forum.com] Sent: Tuesday, October 06, 2009 4:18 PM To: ironruby-core@rubyforge.org Subject: [Ironruby-core] Native Extensions I noticed on the road-map this item under .NET Interop: [P3] COM: for Win32OLE compatibility Is that the same thing as supporting native extensions? If not, is it on the roadmap to support such a thing? Also, is there a workaround, like replacing files in the gem installation with a .NET wrapper? I'd love to use IronRuby to embed Thin or Mongrel in my .NET services, but from from my few experiments it looks like most of the networking libraries these servers use tend to rely on native dll's. -- Posted via http://www.ruby-forum.com/. _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core