C Extension Alternatives
JRuby versions prior to 1.6 did not support Ruby C extensions, and even in 1.6 the support is still "in development" and considered experimental. This page lists common C extensions and non-C alternatives you can use to replace them.
RDiscount - Use Maruku (pure Ruby) or markdown_j (wrapper around a Java library)
RMagick - Try RMagick4J (implements ImageMagick functionality in Java) or preferably use alternatives mini_magick & quick_magick. For simple resizing, cropping, greyscaling, etc look at image_voodoo.
Unicorn - Try any one of the following JRuby-based servers: Trinidad, Mizuno, Kirk or TorqueBox.
Thin - Thin might compile and run but is not recommended. Try any one of the following JRuby-based servers: Trinidad, Mizuno, Kirk or TorqueBox.
Typhoeus - The C extension doesn't currently compile. There's no equivalent library for JRuby, but you might try any of the pure-Ruby HTTP clients (
net/http
, httpclient, etc.). There are also several Java HTTP client libraries that will work (Apache HttpClient, HttpURLConnection, etc).mysql - Use activerecord-jdbc-adapter instead along with
jdbc-mysql
.mysql2 - Use activerecord-jdbc-adapter instead along with
jdbc-mysql
.sqlite3 - Use activerecord-jdbc-adapter instead along with
jdbc-sqlite3
.Nokogiri - For best results, use the pure-Java version of Nokogiri (1.5 or greater).
yajl-ruby - Try
json
orjson_pure
instead. Unfortunately there is no known equivalent JSON stream parser.bson_ext -
bson_ext
isn't used with JRuby. Instead, some native Java extensions are bundled with thebson
gem.win32ole - Use the
jruby-win32ole
gem (preinstalled in JRuby's Windows installer).
Please add to this list with your findings.
Note that the JRuby-Lint gem parses the contents of the list above to use for its Ruby gem checker. In order for JRuby-Lint to use the information, please adhere to the gem_name - instructions
format.