News for hackers. Stuff that matters.
Re:MCP Run Python by simonw on Thursday April 17, 2025 @01:13PM (#43719672)
I've been trying to find a good option for this for ages. The Deno/Pyodide one is genuinely one of the top contenders: https://til.simonwillison.net/deno/pyodide-sandbox

I'm hoping some day to find a recipe I really like for running Python code in a WASM container directly inside Python. Here's the closest I've got, using wasmtime: https://til.simonwillison.net/webassembly/python-in-a-wasm-s...

Re:MCP Run Python by singularity2001 on Thursday April 17, 2025 @03:38PM (#43721214)
one wasmtime dependency and a self contained python file with 100 loc seems reasonable!

much better than calling deno, at least if you have no pip dependencies...

just had to update to new api:

# store.add_fuel(fuel) store.set_fuel(fuel) fuel_consumed=fuel-store.get_fuel()

and it works!!

time to hello world: hello_wasm_python311.py 0.20s user 0.03s system 97% cpu 0.234 total

Re:MCP Run Python by lopuhin on Thursday April 17, 2025 @04:28PM (#43721856)
it's pretty difficult to package native python dependencies for wasmtime or other wasi runtimes, e.g. lxml
Re:MCP Run Python by Already__Taken on Friday April 18, 2025 @07:02AM (#43726861)
yeh if you can't shove numpy in there its not really useful.
Re:MCP Run Python by antonvs on Thursday April 17, 2025 @04:51PM (#43722093)
I was interested in how this compares in a kind of absolute sense. For comparison, an optimized C hello world program gave these results using `perf` on my Dell XPS 13 laptop:

       0.000636230 seconds time elapsed
       0.000759000 seconds user
       0.000000000 seconds sys
That's 36,800% faster. Hand-written assembly was very slightly slower. Using the standard library for output instead of a syscall brought it down to 20,900% faster.

(Yes I used percentages to underscore how big the difference is. It's 368x and 209x respectively. That's huge.)

Begrudgingly, here are the standard Python numbers:

    real    0m0.019s
    user    0m0.015s
    sys     0m0.004s
About 1230% faster than the sandbox, i.e. 12.3x. About an order of magnitude, which is typical for these kinds of exercises.
Re:MCP Run Python by singularity2001 on Thursday April 17, 2025 @08:00PM (#43723565)
haha, 99% is startup time for the sandbox, but yeah, python via wasm is probably still 10-400 times slower than c.
Re:MCP Run Python by fzzzy on Friday April 18, 2025 @10:21AM (#43728345)
Great, thanks for your post! I got it working too. This is going to be incredibly handy.
Re:MCP Run Python by abshkbh on Thursday April 17, 2025 @05:56PM (#43722664)
https://github.com/abshkbh/arrakis

Will come with MacOS support very soon :) Does work on Linux

Re:MCP Run Python by Tsarp on Thursday April 17, 2025 @11:42PM (#43724789)
I tried this path and found that MacOS has horrible support on firecracker and similar.
Re:MCP Run Python by abshkbh on Friday April 18, 2025 @01:46PM (#43730285)
Crosvm (our original Google project) and its children projects Firecracker, Cloud-Hypervisor are all based on top of "/dev/kvm" i.e. the Linux Virtualization stack.

Apple's equivalent is the Apple Virtualization Framework which exposes kvm like functionality at a higher level.

Re:MCP Run Python by Tsarp on Friday April 18, 2025 @12:21AM (#43724984)
Atleast on macos cant the sandbox-exec be used similar to what codex is doing?
Re:MCP Run Python by simonw on Friday April 18, 2025 @03:12AM (#43725761)
Yeah, I got excited about that option a while back but was put off by the fact that Apple's (minimal) documentation say sandbox-exec is deprecated.
Re:MCP Run Python by fzzzy on Friday April 18, 2025 @08:15AM (#43727342)
OpenAI's Codex CLI uses it on macOS. It's in typescript but maybe I'll take a look at what they do and port it to python.
Re:MCP Run Python by fzzzy on Friday April 18, 2025 @09:53AM (#43728116)
I cleaned up the output of asking Gemini 2.5 Pro to rewrite it in python, and it seems to work well:

https://gist.github.com/fzzzy/319d6cbbdfff9c340d0e9c362247ae...

Re:MCP Run Python by 3abiton on Friday April 18, 2025 @02:04AM (#43725448)
> I'm hoping some day to find a recipe I really like for running Python code in a WASM container directly inside Python.

But what would be the usecase for this?

Re:MCP Run Python by simonw on Friday April 18, 2025 @02:21AM (#43725528)
Running Python code from untrusted sources, including code written by LLMs.
Re:MCP Run Python by 3abiton on Friday April 18, 2025 @05:21PM (#43731970)
I see, the way I would approach is it by running a client on in a specific python env on an incus instance, with LLM hosted either on the host or another seperate an incus instance. Lately been addicted to sandboxing apps in incus, specifically for isolated vpn tunnels, and automating certain web access.
Re:MCP Run Python by 5rest on Monday April 28, 2025 @10:56PM (#43828320)
The demo looks really appealing. I have a real-world use case in mind: analyzing an Excel file and asking questions about its contents. The current approach (https://github.com/pydantic/pydantic-ai/blob/main/mcp-run-py...) seems limited to running standalone scripts—it doesn't support reading and processing files. Is there an extension or workaround to enable file input and processing?