Existe alguma maneira fácil de compilar meu R
script em um .exe
arquivo autônomo, assim como o matlab faz?
Existe alguma maneira fácil de compilar meu R
script em um .exe
arquivo autônomo, assim como o matlab faz?
Respostas:
Na verdade, existe uma maneira de obter uma solução que atenda às suas necessidades. Dê uma olhada no artigo sobre Implementação de aplicativos de área de trabalho com R no R-Bloggers. Conforme detalhado no artigo, você acabará usando mais algumas coisas do que um único arquivo exe.
Também gostaria de chamar sua atenção para o RGtk2 com o uso do RGtk2, você poderia tentar desenvolver sua própria interface em R. Se o impulso for necessário, espero que você possa empacotar seu código R junto com uma versão portátil de R e dependências em um instalador e fazer um aplicativo a partir dele, que criaria uma ilusão de um único arquivo exe.
Em sua pergunta, você perguntou se é fácil desenvolver um arquivo executável autônomo interpretando o código R. Eu não diria que é fácil. Se você deseja muito executar um código R a partir de um aplicativo, pode fazê-lo de maneira mais simples usando RCaller para Java ou R.NET .
Em resposta ao seu comentário:
Na verdade eu gostaria de distribuí-lo, mas mantendo os scripts e o algoritmo em segredo, existe uma maneira de criptografar isso ou alguma outra maneira de atingir esse propósito?
Você pode (mais ou menos) fazer isso salvando funções usando save()
. Por exemplo, aqui está uma função que f()
você deseja manter em segredo:
f <- function(x, y) {
return(x + y)
}
Salve onde quiser:
save(f, file = 'C:\\Users\\Joyce\\Documents\\R\\Secret.rda')
E quando você quiser usar a função:
load("C:\\Users\\Joyce\\Documents\\R\\Secret.rda")
Gostaria de salvar todas as minhas funções em arquivos separados, colocá-los em uma pasta e ter um velho script .R carregando todos eles e executando o que quer. Compacte a coisa toda e distribua para quem quiser. Talvez até mesmo compilá-lo em um pacote. Efetivamente, a coisa toda seria somente para leitura.
Esta solução não é tão boa assim. Você ainda pode ver a função em R digitando o nome da função para que não fique oculto nesse sentido. Mas se você abrir os arquivos .rda, o conteúdo deles ficará todo distorcido. Tudo depende realmente da experiência dos destinatários do seu código com R.
f
.
Uma forma de ter código criptografado é implementada na petals
função do pacote TeachingDemos.
Observe que seriam necessárias apenas habilidades de programação de nível intermediário para localizar o código oculto; no entanto, é necessário um esforço deliberado e o usuário não poderia alegar ter visto o código por acidente. Você então precisaria de algum tipo de contrato de licença para fazer cumprir quaisquer acordos de não exibição.
petals
função não oculta o código, é um exemplo de como uma peça chave do código está oculta (você consegue ler a peça chave?). Outras ferramentas são necessárias para fazer a criptografia (branqueamento). Uma abordagem mais simples é discutida em: stat.ethz.ch/pipermail/r-devel/2011-October/062236.html . A compilação de bytes também pode ajudar, mas você realmente precisa de algum tipo de contrato de licença.
Bem, você vai precisar do R instalado na máquina de implantação. Quanto a fazer um executável, não tenho certeza se isso é possível. Mas você pode criar outro programa que invoque seu script R. R é uma linguagem interpretada. Não é possível.