Подтвердить что ты не робот

Можете ли вы распространять приложение Ruby on Rails без источника?

Мне интересно, можно ли распространять приложение RoR для использования без исходного кода? Я видел этот пост на SO, но моя ситуация немного отличается. Это будет приложение, управляемое людьми с некоторой подсказкой, поэтому я классно, все еще требуя установки Apache/Mongrel/MySQL на стороне клиента. Я действительно хочу, чтобы источник был защищен. Кодирование является популярным способом распространения приложений PHP (например: Helpspot).

Я нашел эти потенциальные решения:

  • Zenobfuscate - не все типы Ruby-кода поддерживаются, поэтому учитывается
  • Ruby Encoder - может быть лучшим вариантом, так как их кодер PHP выглядит хорошо (я его еще не пробовал), но это не доступный еще. Я использовал IONcube для PHP раньше, и он работал хорошо, но не похоже, что IONcube еще не заинтересован.
  • Slingshot - он упоминался в другом сообщении SO, но он решает другую проблему для моего, и источник все еще отображается.
  • RubyScript2Exe - из doco, это не готово к производству, так что это не так.

Я слышал, что потенциально использование JRuby и распространение байт-кода могут быть способом достижения этого, но я никогда не использовал JRuby, поэтому я не уверен, что с ним связано.

Кто-нибудь может предложить какие-либо идеи и/или известные примеры? В идеале я хотел бы иметь какой-то сценарий автоматической сборки.

4b9b3361

Ответ 1

Лучше всего сейчас использовать JRuby. Немного фона: Моя компания (BitRock) работает со многими собственными и коммерческими поставщиками с открытым исходным кодом. Мы помогаем им упаковывать свое серверное программное обеспечение, которое, как правило, основано на PHP, Java или Ruby вместе с веб-сервером или сервером приложений (Apache, Tomcat), языковой средой выполнения и базой данных (обычно Postgres, MySQL) в автономной, простой в использовании установщик. У нас есть большое количество PHP-клиентов (включая HelpSpot, которые вы упоминаете), но также и несколько Rails-based. В случае клиентов RoR нормой является использование JRuby вместе с Tomcat или Glassfish, хотя в некоторых случаях мы также объединяем собственный интерпретатор Ruby для запуска определенных сценариев, которые полагаются на библиотеки, которые еще не портированы в JRuby (обычно это не ядро ​​для приложения), JRuby созрел быстро, и во многих случаях он фактически запускает свой код быстрее обычного Ruby. Вам также нужно будет учесть, что хотя перенос кода в JRuby довольно прост, вам нужно будет потратить некоторое время на это. Вы можете проверить JRuby Stack, который является бесплатным установщиком всего, что вам нужно для начала работы. Удачи!

Ответ 2

Если вы освободите источник, запутанный или иным образом, ваше приложение будет пиратским. См., Например, Mint. Это зависит от того, что вы строите, но вы можете обнаружить, что вам лучше выпускать приложение в виде гибрида: размещенное приложение с четко определенным API и компонент, который работает на клиентском сервере. Пока истинная ценность вашего продукта живет на стороне сервера, вам не нужно обфускации вашего кода, и вы можете просто освободить исходный код без изменений. Кроме того, это может также дать вам возможность привлечь клиентов, скажем, PHP, а не Ruby. См., Например, Google Analytics, HopToad, Scout и т.д.

Ответ 3

Вы можете, но это не сделало бы ничего, чтобы кто-то не мог бы перепроектировать или изменить его. Я помню, что была статья о подобных попытках обанкротить Perl и как они могли быть эффективно обойдены отладчиком и 5 минут усилий.

Ответ 4

Если вы не можете дождаться доставки RubyEncoder, то я думаю, что ZenObfuscate является наиболее перспективным. Хотя для вашего исходного кода могут потребоваться некоторые изменения, они говорят об этом на своем сайте:

ZenObfuscate стоит 2500 долларов США за лицензию на сайте или является индивидуально предметом переговоров для других схем лицензирования. Да, это дорого. Это было специально. Но не позволяйте этому мешать вам слишком много. Если ваш продукт действительно классный, и мы хотим, чтобы он был успешным, мы сделаем его работу. "Действительно круто" - это не freecell.

Конечно, за $2500 (или больше) вы надеетесь получить несколько настроек для компилятора, которые полностью поддержали бы вашу кодовую базу. Возможно, стоит привлечь их к разговору.

Ответ 5

Вы также можете взглянуть на Mingle из ThoughtWorks studios в качестве примера использования JRuby для этого. Это приложение Ruby on Rails, они запускают его с помощью JRuby. Они настроили jruby для загрузки зашифрованных файлов .rb.

Ответ 6

Взгляните на JumpBox.

У меня были разговоры с ними по этой теме, и у них, похоже, есть решение, которое скоро будет работать для приложений Rails.

Ответ 7

Мне интересно, можно ли просто "скомпилировать" код ruby ​​в исполняемый файл, используя что-то вроде RubyScript2Exe?

Честно говоря, я не использовал его, но кажется, что он может быть тем, что вы хотите, даже если он просто упаковывает сценарии с интерпретатором в один исполняемый файл.