Protecting Ruby Code as Intellectual Property

Good People,

Short of removing all whitespace and running one’s script a single block
of text, how can one protect one’s code as intellectual property in,
say, a commercial environment? Is there a means to hide or protect
code, or do you have to port it to a language such as C or C++ in order
to do this? Thanks for your attention to this matter.

David B.

See ANN: ZenObfuscate - for when you really really have to ship - Ruby - Ruby-Forum

On Tue, 20 Jun 2006 23:04:29 +0200, Simen E. [email protected]
wrote:

See ANN: ZenObfuscate - for when you really really have to ship - Ruby - Ruby-Forum

And also http://ruby2cext.rubyforge.org/

David B. wrote:

Short of removing all whitespace and running one’s script a single block
of text, how can one protect one’s code as intellectual property in,
say, a commercial environment?

It seems this is as much a legal question as a technical one. The
best ideas that come to my mind are: patents on your most important
IP, NDAs with your customers, good legal review of your license
agreements, etc. Note that lots of commercial software has
source code available with the right legal documents in place[1].

Is there a means to hide or protect code, or do you have to
port it to a language such as C or C++ in order
to do this? Thanks for your attention to this matter.

Perhaps, but those will probably do little to protect your IP.
In reality it’ll be hard for people outside your organization
to maintain your actual codebase in any language even if you
provide all the source and detailed documentation to help them;
and if all they want to do is extract particular algorithms,
that’s not hard to reverse engineer from binaries.

[1] http://www.microsoft.com/resources/sharedsource/Licensing/GSP.mspx

David B. wrote:

Good People,

Short of removing all whitespace and running one’s script a single block
of text, how can one protect one’s code as intellectual property in,
say, a commercial environment? Is there a means to hide or protect
code, or do you have to port it to a language such as C or C++ in order
to do this? Thanks for your attention to this matter.

This has been discussed various times, some quite recently, on this
mailing list. You should be able to find what you need by searching the
mailing list archives.


James B.

“I was born not knowing and have had only a little
time to change that here and there.”

  • Richard P. Feynman