Невозможно закодировать код таким образом, чтобы машина могла его выполнить, но человек не может его прочитать.Чтобы ваши клиенты могли запускать код, процессор должен понимать код.Процессоры намного, намного глупее, чем люди, поэтому, если процессор может понимать код, то и человек тоже может.
Единственный способ защитить ваш код - это не выдавать его.Разместите приложение в своем собственном помещении и сдайте в аренду доступ к нему как к услуге.
Обратите внимание, что чтение вашего кода является незаконным, поэтому вы можете думать, что кто-то, у кого нет проблем с отправкой в тюрьму, получит доступ кВаши секреты будут остановлены какой-то кодировкой, которую все равно можно будет перепроектировать?(Обратите внимание, что даже если у них есть незашифрованный исходный код, им все равно придется его перепроектировать, так как без доступа к вашему исходному репозиторию и проектной документации они не имеют понятия , почему код написантак оно и есть.)
Кроме того, для тех, у кого нет проблем с нарушением закона, подкуп одного из ваших сотрудников, который знает , как работает код, будет гораздо проще, чем наоборот.разработка кода.
Для Ruby не существует общего формата байт-кода.Существует несколько различных реализаций Ruby, некоторые из них имеют формат байт-кода, некоторые нет.Например, Opal - это компилятор, который выводит ECMAScript без использования байт-кода.XRuby был компилятором для JVM, но он заброшен.Ruby.NET был компилятором для .NET, но он заброшен.JRuby - это реализация JVM, которая также включает в себя компилятор.И YARV, MRuby, и Rubinius имеют разные несовместимые форматы байт-кода;некоторые из этих реализаций позволяют загружать байт-код с диска, другие - нет.