`unf` was never a hard dependency. But I don't think forcing a C extension on everyone, regardless of whether they're actually using it, is a fair trade-off.  Compiling extensions can be very difficult in some environments.  The solution to that is a pure Ruby library, which are substantially slower.

I'll look into doing it once at startup.  I just want to be careful of multi-threaded issues.

FYI, if you're having issues with const_missing, I think that's coming from your app.  I just benchmarked MRI 2.0.0-p247 and JRuby 1.7.8 and the defined? check is minimal.  On MRI the difference is virtually non-existent.  On JRuby, it's there, but the execution speed is still so fast that I'd be very suspicious of it being a hot spot in any app.  You can see my results here:

https://gist.github.com/nirvdrum/7714588

I guess that's a roundabout way of saying I'll see what I can do to ease your situation.  But it'd be hard for us to anticipate all the ways one might use dynamic hooks and guarding for that is rather hard.  If you have a hard const_missing lookup in production, you may want to consider removing that if performance is a concern.