回答
一種選擇是使用類似Rserve的方式將您的函數作爲服務公開。但是,這會要求您承載爲用戶運行代碼的服務器。
+1同意。 RStudio Server也適用於此解決方案,以及許多其他承載代碼服務器端的軟件包。 – Iterator 2012-04-21 16:07:01
但是使用RStudio Server你不會隱藏代碼。 R會話遠程運行,但用戶仍可以看到所有使用的代碼。 – 2012-04-24 08:51:11
當您使用R代碼時,我們無法隱藏用戶的代碼。您可以分發軟件包的二進制包,但仍然以明文形式包含R代碼。另外,當代碼加載到R時,用戶可以通過在命令行上輸入而不用括號查看任何函數的源代碼。
我不確定你爲什麼要隱藏代碼。也許你可以在你的問題上評論一下,以便讓事情更清楚。另外,我們可能會想出解決方案,而不是隱藏代碼來解決您的問題。如果隱藏代碼是爲了保持來自未經驗的用戶的實現細節,您可以執行以下操作。
爲其功能想要提供給用戶的函數創建包裝函數。這樣的包裝功能,可以看起來像:
spam_wapper = function(a, b) { return(.spam(a = a, b = b)) })
使所有非包裝功能對用戶不可見。他們仍然可以通過顯式地說明你的包的命名空間訪問它們:
pkgname::.spam
,但它是很難獲得的代碼,使其更難找到雛[R程序員。但是一旦他們知道了這個訣竅,這將無濟於事。
如果你的原因是因爲你想賺錢使用R代碼裏面,隱藏巧妙製作的R代碼裏面(在這種情況下,我會defintely分享:)),或在任何競爭中隱藏你的代碼可能竊取你的想法。在這種情況下,@baptiste的建議可能會起作用。但是我猜想用Fortran,C或C++重寫你的代碼需要花費很多工作...我會說,只要給他們源代碼...
- 1. 如何在不暴露自己的情況下找出宏的功能?
- 2. 如何在不暴露我的源代碼的情況下襬脫硬盤?
- 3. 如何在不暴露字段的情況下實現equals?
- 4. 在不暴露明文的情況下更改加密密鑰
- 5. 在不暴露實現的情況下創建swift框架
- 6. 如何在不使用Maven存儲庫的情況下共享karaf功能?
- 7. 如何在不暴露容器的情況下公開迭代器?
- 8. 如何在不共享源代碼的情況下創建和使用Android庫?
- 9. 源碼VS在多用戶情況下
- 10. 你如何讓人們在不將項目暴露給整個代碼庫的情況下工作?
- 11. 暴露功能上軌
- 12. 綁定情況下被重新使用時ValidationRules不能共享
- 13. 跨多個UIViewControllers在不背景閃爍的情況下共享一個UIView
- 14. 如何在不使用GAC的情況下共享庫?
- 15. 如何在不暴露源代碼的情況下將SDK分發爲AAR文件?
- 16. Docker:如何在不暴露端口的情況下連接到Postgresql容器
- 17. 如何在不打開UIActivityViewController的情況下共享whatsapp?
- 18. 如何在不映射的情況下共享POJO?
- 19. 共享指針在不分配的情況下工作
- 20. 從功能暴露淘汰賽VIEWMODE到另一個功能
- 21. 在openssl lib的日誌中暴露Diffie Hellman共享密鑰
- 22. 在沒有數據庫表的情況下在用戶之間共享數據
- 23. 設計模式與不同的情況下重用代碼
- 24. 如何在Azure功能中共享通用代碼?
- 25. WCF服務生成的代理類暴露功能的ByRef子
- 26. 共享/代理功能的CodeIgniter會話跨多個CI實例
- 27. 共享功能
- 28. 如何在不使用AppStore和UDID的情況下共享IPA以下載
- 29. 如何在不下載源代碼的情況下使用EXSLT?
- 30. java屬性 - 暴露還是不暴露?
讓一個存儲庫完全正交於用戶是否可以看代碼與否。這是你第二次問這個問題,而你仍然用一個措辭不佳的方式提問。如果你真正的問題是:「我如何隱藏用戶的代碼」,那麼答案可能是「只有一些困難」。 – 2012-04-20 19:57:38
有趣的是,試圖提出問題的人受到「專家」的攻擊。我似乎並不在乎在這個網站上建立聲望。 – 2012-04-20 20:15:12
我們許多人貢獻開源代碼。我們可能不是要求隱藏代碼的最佳羣體... – 2012-04-20 20:35:04