从另一种语言调用PyPy沙盒

5

首先我要说,我对PyPy还比较陌生,但是对Python有一定的经验。

我想运行一个Web应用,该应用需要运行不受信任的Python代码。PyPy的沙盒功能看起来非常适合我的需求。

PyPy关于沙盒的文档指出,你可以在Python或PyPy中调用PyPy的沙盒。这似乎意味着有一些单独的程序或可执行文件是沙盒。

我想知道,是否可能从非Python语言调用PyPy的沙盒?我特别关注的是Haskell,但也很有可能使用C或C ++作为中间语言。

2个回答

2

是的,这是可能的。PyPy沙盒是一个独立的进程,只通过stdin/stdout进行通信。如果您想重写“外部”部分,可以这样做;它没有使用任何应该过于依赖Python的东西。


你能否举个例子,展示如何在某种编程语言中实现这个功能?pypy-c-sandbox只是一个可执行文件吗? - jmite
1
是的,pypy-c-sandbox只是一个可执行文件。如何操作的示例可以在https://bitbucket.org/pypy/pypy/raw/default/pypy/sandbox/pypy_interact.py以及它所依赖的sandlib和vfs模块中找到。 - Armin Rigo

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接