Protect JRuby source code

Am I right in thinking (based on a bit of Googling) that it is not easy
to decompile a .rb file that has been compiled by jrubyc?

I have not been able to find any recent information about this and maybe
the de-compilers have improved.

Assuming that it is difficult to decompile it seems that I could protect
propietary formulae or just the code in my application by putting those
parts into a .rb file and compiling it?

As far as I can see require ‘foo’ is equally happy to use foo.class or
foo.rb and therefore the rest of the application would not have to be
compiled?

Robin McKay wrote:

Am I right in thinking (based on a bit of Googling) that it is not easy
to decompile a .rb file that has been compiled by jrubyc?

I have not been able to find any recent information about this and maybe
the de-compilers have improved.

Last I did this, some years ago, I found that the results were extremely
obfuscated.

I’m not a reverse engineering hacker so I can’t say of there isn’t some
plausible way to take the decompiled results and turn it into something
much more readable (that is, something that makes explicit the code
logic).

Assuming that it is difficult to decompile it seems that I could protect
propietary formulae or just the code in my application by putting those
parts into a .rb file and compiling it?

As far as I can see require ‘foo’ is equally happy to use foo.class or
foo.rb and therefore the rest of the application would not have to be
compiled?

I’ve run into to some issues with rawr where making a jar that held
compiled Ruby code would fail because the compiled classes were not
found by ‘require’. But I can’t say for sure this isn’t because of
something wonky in rawr. (OTOH it seems to only happen with recent
versions of Java. )

But, other than that, you can mix and match .rb. and .class.

James B.

Neurogami - Avant-garage Research & Development

[email protected]

James B. wrote in post #1065588:

I’ve run into to some issues with rawr where making a jar that held
compiled Ruby code would fail because the compiled classes were not
found by ‘require’. But I can’t say for sure this isn’t because of
something wonky in rawr. (OTOH it seems to only happen with recent
versions of Java. )

Thanks James,
If I can mix .class and .rb files I can’t see any need for the
complication of rawr.

If I just put my whole project in a .tar.gz or .zip file it seems to
transfer perfectly well to other PCs - Windows and Linux (I don’t have
access to a Mac)

Robin McKay wrote:

Thanks James,
If I can mix .class and .rb files I can’t see any need for the
complication of rawr.

Rawr just handy if you’re looking for a self-contained executable.

James