{"id":617,"date":"2026-06-06T03:53:00","date_gmt":"2026-06-06T03:53:00","guid":{"rendered":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/"},"modified":"2026-06-06T16:59:28","modified_gmt":"2026-06-06T16:59:28","slug":"atom-everything-4","status":"publish","type":"post","link":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/","title":{"rendered":"Working Python code in a sandbox with MicroPython and WASM"},"content":{"rendered":"<p><br \/>\n<\/p>\n<div data-permalink-context=\"\/2026\/Jun\/6\/micropython-in-a-sandbox\/\">\n<h2>Working Python code in a sandbox with MicroPython and WASM<\/h2>\n<p class=\"mobile-date\">sixth June 2026<\/p>\n<p>I\u2019ve been experimenting with completely different approaches to working code in a sandbox for a number of years now, however my newest try feels prefer it would possibly lastly have the entire traits I\u2019ve been on the lookout for. I\u2019ve launched it as an alpha package deal known as micropython-wasm, and I\u2019m utilizing it for a code execution sandbox plugin for Datasette Agent known as datasette-agent-micropython.<\/p>\n<h4 id=\"why-do-i-want-a-sandbox-\">Why do I need a sandbox?<\/h4>\n<p>My key open supply tasks\u2014Datasette, LLM, even sqlite-utils\u2014all assist plugins.<\/p>\n<p>I completely love plugins as a mechanism for extending software program. A rigorously designed plugin system reduces the chance concerned in attempting new issues to virtually nothing\u2014even the wildest concepts received\u2019t go away a long-lasting affect on the core utility itself. My software program can develop a brand new function in a single day and I don\u2019t even must overview a pull request!<\/p>\n<p>There\u2019s one main downside: my plugin methods all use Python and Pluggy, and plugin code executes with full privileges inside my purposes. A buggy or malicious plugin may break the whole lot or leak non-public knowledge.<\/p>\n<p>I\u2019d love to have the ability to run plugin-style code in an surroundings the place it&#8217;s unable to learn unapproved information, connect with a community, or usually function in a method that\u2019s dangerous or dangerous to the remainder of the applying or the consumer\u2019s laptop.<\/p>\n<p>My curiosity covers extra than simply plugins. For Datasette specifically there are various options I\u2019d prefer to assist the place arbitrary code execution could be helpful. I\u2019ve already experimented with this for Datasette Enrichments, the place code can be utilized to rework values saved in a desk. I\u2019d like to construct a mechanism the place you may run code on a schedule that fetches JSON from an permitted location, runs a tiny little bit of code to reformat it into an inventory of dictionaries, then inserts these as rows in a SQLite database desk.<\/p>\n<h4 id=\"what-i-want-from-a-sandbox\">What I would like from a sandbox<\/h4>\n<p>My aim is to execute code safely inside my very own Python purposes. Right here\u2019s what I want:<\/p>\n<p>Dependencies that cleanly set up from PyPI, together with binary wheels throughout a number of platforms if needed. I don\u2019t need folks utilizing my software program to must take any further steps past immediately putting in my Python package deal.<br \/>\nExecuted code have to be topic to each reminiscence and CPU limits. I don\u2019t need whereas True: s += &#8220;longer string&#8221; to crash my utility or the consumer\u2019s laptop.<\/p>\n<p>File entry have to be strictly managed. Both no filesystem entry in any respect or I get to outline precisely which information might be learn and which information might be written to.<\/p>\n<p>Community entry is managed as effectively. Sandboxed code shouldn&#8217;t be in a position to talk with something with out going by way of a layer I totally management.<br \/>\nAssist for interplay with host capabilities. A sandbox isn\u2019t a lot use if I can\u2019t rigorously expose chosen platform options to the code that it\u2019s working.<br \/>\nIt must be strong, supported, and clearly documented. I\u2019ve misplaced depend of the variety of sandbox tasks I\u2019ve seen in repos with warnings that they aren\u2019t actively maintained!<\/p>\n<h4 id=\"webassembly-looks-really-promising-here\">WebAssembly appears to be like actually promising right here<\/h4>\n<p>Net browsers function in probably the most hostile surroundings possible with regards to malicious code. Their job is to obtain and execute untrusted code from the online on virtually each web page load.<\/p>\n<p>Given this, JavaScript engines ought to be glorious candidates for sandboxes. Sadly these engines are additionally extraordinarily difficult, and usually are not designed for straightforward embedding in different tasks. Many of the V8-in-Python tasks I\u2019ve seen are occasionally maintained and include warnings to not use them with fully untrusted code.<\/p>\n<p>WebAssembly is a a lot better candidate. It was designed from the begin to assist the entire traits I care about and has been examined in browsers for practically a decade. The wasmtime Python library brings WASM to Python, is actively maintained, and has binary wheels.<\/p>\n<h4 id=\"micropython-in-webassembly\">MicroPython in WebAssembly<\/h4>\n<p>WebAssembly engines like wasmtime run WebAssembly binaries. Some programming languages like Rust are straightforward to compile on to WebAssembly. Dynamic languages like JavaScript and Python are tougher\u2014they assist language primitives like eval(), which implies they want a full interpreter accessible at runtime.<\/p>\n<p>To run Python we want a full Python interpreter compiled to WebAssembly, wired up in a method that makes it straightforward to feed it code, hook up host capabilities and entry the outcomes.<\/p>\n<p>Pyodide gives an impressive package deal for working Python utilizing WebAssembly within the browser, however utilizing Pyodide in server-side Python isn\u2019t supported. The latest recommendation I may discover was from October 2024 stating \u201cPyodide is constructed by the Emscripten toolchain and might solely run in a browser or Node.js\u201d.<\/p>\n<p>The opposite day I made a decision to check out MicroPython as an possibility for this. The MicroPython web site says:<\/p>\n<blockquote>\n<p>MicroPython is a lean and environment friendly implementation of the Python 3 programming language that features a small subset of the Python customary library and is optimised to run on microcontrollers and in constrained environments.<\/p>\n<\/blockquote>\n<p>WebAssembly certain looks like a constrained surroundings to me!<\/p>\n<h4 id=\"building-the-first-version\">Constructing the primary model<\/h4>\n<p>I had GPT-5.5 Professional perform some research for me, which turned up this PR in opposition to MicroPython by Yamamoto Takahashi titled \u201cExperimental WASI assist for ports\/unix\u201d.<\/p>\n<p>It then produced this analysis.md doc, so I let Codex Desktop and GPT-5.5 excessive free on it to see what would occur:<\/p>\n<blockquote>\n<p>learn the analysis.md doc and construct this. You&#8217;ll most likely want to jot down a script that compiles a customized WASM model of MicroPython as a part of this mission &#8211; fetch the MicroPython code to a \/tmp listing for this as a part of that script.<\/p>\n<\/blockquote>\n<p>It labored. I now had a prototype Python library that might execute Python code inside a WebAssembly sandbox!<\/p>\n<p>The trickiest piece to resolve was persistent interpreter state. The WASM construct we&#8217;re utilizing right here exposes a single entry level which begins the interpreter, runs the code after which stops the interpreter on the finish.<\/p>\n<p>This works superb for one-off scripts, however for Datasette Agent I would like variables and capabilities to remain resident in reminiscence so I can reuse them throughout a number of code execution calls.<\/p>\n<p>A neat factor about working with coding brokers is that you may get from an concept to a proof of idea rapidly. I prompted:<\/p>\n<blockquote>\n<p>For retaining variables resident: what if we ran code inside micropython itself which known as a bunch operate get_next_python_code() after which handed that to eval() &#8211; and that host operate blocked till new code was accessible, perhaps by working in a thread with a queue? Might that or an analogous concept assist right here?<\/p>\n<\/blockquote>\n<p>After some iteration we obtained to a model of this that works! In Python code now you can do that:<\/p>\n<p><span class=\"pl-k\">from<\/span> <span class=\"pl-s1\">micropython_wasm<\/span> <span class=\"pl-k\">import<\/span> <span class=\"pl-v\">MicroPythonSession<\/span><\/p>\n<p><span class=\"pl-k\">with<\/span> <span class=\"pl-en\">MicroPythonSession<\/span>() <span class=\"pl-k\">as<\/span> <span class=\"pl-s1\">session<\/span>:<br \/>\n    <span class=\"pl-en\">print<\/span>(<span class=\"pl-s1\">session<\/span>.<span class=\"pl-c1\">run<\/span>(<span class=\"pl-s\">&#8220;x = 10<span class=\"pl-cce\">n<\/span>print(x)&#8221;<\/span>).<span class=\"pl-c1\">stdout<\/span>)<br \/>\n    <span class=\"pl-en\">print<\/span>(<span class=\"pl-s1\">session<\/span>.<span class=\"pl-c1\">run<\/span>(<span class=\"pl-s\">&#8220;x += 5<span class=\"pl-cce\">n<\/span>print(x)&#8221;<\/span>).<span class=\"pl-c1\">stdout<\/span>)<br \/>\n    <span class=\"pl-en\">print<\/span>(<span class=\"pl-s1\">session<\/span>.<span class=\"pl-c1\">run<\/span>(<span class=\"pl-s\">&#8220;print(x * 2)&#8221;<\/span>).<span class=\"pl-c1\">stdout<\/span>)<\/p>\n<p>Below the hood this begins a thread, units up a request queue after which sends messages to that queue for the session.run() command, every time ready on a reply queue for the results of that execution. Inside WASM the MicroPython interpreter blocks ready for a __session_next__() host operate to return the subsequent line of code, which it runs eval() on earlier than calling __session_result__({&#8220;id&#8221;: request_id, &#8220;okay&#8221;: True}) when every block has been efficiently executed.<\/p>\n<p>The opposite piece of complexity was supporting host capabilities, so my Python library may selectively expose capabilities that might then be known as by code working in MicroPython.<\/p>\n<p>Codex ended up fixing this with 78 traces of C, which finally ends up compiled into the 362KB WebAssembly blob I\u2019m distributing with the package deal.<\/p>\n<p>I&#8217;m under no circumstances a C programmer, however I\u2019ve learn the C and had two completely different fashions clarify it to me (right here\u2019s Claude\u2019s rationalization) and I\u2019ve subjected it to a barrage of exams.<\/p>\n<p>The wonderful thing about working with WebAssembly is that if the C seems to be fatally flawed the worst that may occur is the WebAssembly execution will fail with an exception. I can reside with that danger.<\/p>\n<p>Reminiscence limits are immediately supported by wasmtime. CPU limits are a bit tougher: wasmtime gives a \u201cgas\u201d idea to restrict what number of operations a WebAssembly name can execute, and that\u2019s the right match for this downside, however the models are onerous to cause about. I\u2019m experimenting with a 20 million default \u201cgas\u201d setting now however I\u2019m not assured that it\u2019s probably the most acceptable worth.<\/p>\n<h4 id=\"try-it-yourself\">Strive it your self<\/h4>\n<p>The micropython-wasm alpha is now reside on PyPI.<\/p>\n<p>You possibly can attempt it from your personal Python code as described within the README. I\u2019ve additionally added a easy CLI mode in model 0.1a2 which implies you may attempt it utilizing uvx with out first putting in it like so:<\/p>\n<div class=\"highlight highlight-source-shell\">uvx micropython-wasm -c <span class=\"pl-s\"><span class=\"pl-pds\">&#8216;<\/span>print(&#8220;Whats up world&#8221;)<span class=\"pl-pds\">&#8216;<\/span><\/span><br \/>\n<span class=\"pl-c\"><span class=\"pl-c\">#<\/span> To see it run out of gas:<\/span><br \/>\nuvx micropython-wasm -c <span class=\"pl-s\"><span class=\"pl-pds\">&#8216;<\/span>s = &#8220;&#8221;; whereas True: s += &#8220;longer&#8221;<span class=\"pl-pds\">&#8216;<\/span><\/span><br \/>\n<span class=\"pl-c\"><span class=\"pl-c\">#<\/span> Outputs: micropython-wasm: visitor exited with code 1<\/span><\/div>\n<p>You too can attempt it in Datasette Agent like this:<\/p>\n<div class=\"highlight highlight-source-shell\">uvx llm keys <span class=\"pl-c1\">set<\/span> openai<br \/>\n<span class=\"pl-c\"><span class=\"pl-c\">#<\/span> Paste in an OpenAI key, then:<\/span><br \/>\nuvx &#8211;with datasette-agent<br \/>\n  &#8211;with datasette-agent-micropython<br \/>\n  &#8211;prerelease permit<br \/>\n  datasette &#8211;internal inner.db<br \/>\n    -s plugins.datasette-llm.default_model gpt-5.5<br \/>\n    &#8211;root -o<\/div>\n<p>Then navigate to http:\/\/127.0.0.1:8001\/-\/agent and run the immediate:<\/p>\n<blockquote>\n<p>present me some micropython<\/p>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"https:\/\/static.simonwillison.net\/static\/2026\/micropython-in-datasette-agent.jpg\" style=\"max-width: 100%\" alt=\"Screenshot of a chat application interface with a dark blue-grey header reading &quot;home&quot; on the left and &quot;root&quot; with a hamburger menu icon on the right. Below is a navigation row with &quot;\u2190 Back&quot; and &quot;Chat&quot; on the left and an &quot;EXPORT&quot; button on the right. A blue user message bubble reads &quot;show me some micropython&quot;. Below it a collapsed thinking section reads &quot;\u25b8Thinking: \u2026 to show the result clearly. After that, I can wrap up with a brief explanation!&quot; followed by a &quot;\u25b6 Tool: execute_micropython&quot; label. A code block follows: &quot;# A tiny MicroPython example: blink-style logic + Fibonacci&quot; \/ &quot;def fib(n):&quot; \/ &quot;    a, b = 0, 1&quot; \/ &quot;    out = []&quot; \/ &quot;    for _ in range(n):&quot; \/ &quot;        out.append(a)&quot; \/ &quot;        a, b = b, a + b&quot; \/ &quot;    return out&quot; \/ 'print(&quot;Hello from MicroPython!&quot;)\" https:=\"\" fibonacci=\"\" numbers:=\"\" fib=\"\" micropython=\"\" often=\"\" runs=\"\" on=\"\" microcontrollers=\"\" e.g.:=\"\" from=\"\" machine=\"\" import=\"\" pin=\"\" led=\"Pin(2,\" pin.out=\"\" led.value=\"\" turn=\"\" off=\"\" below=\"\" a=\"\" horizontal=\"\" divider=\"\" is=\"\" the=\"\" output:=\"\" followed=\"\" by=\"\" result:=\"\" execute_micropython=\"\" label.=\"\" at=\"\" bottom=\"\" text=\"\" input=\"\" field=\"\" with=\"\" placeholder=\"\" message...=\"\" and=\"\" blue=\"\" button.=\"\"\/><\/p>\n<h4 id=\"should-you-trust-my-vibe-coded-sandbox-\">Must you belief my vibe-coded sandbox?<\/h4>\n<p>Having complained about immature, loosely-maintained sandboxing libraries, it\u2019s deeply ironic that I\u2019ve now constructed my very own!<\/p>\n<p>I intentionally slapped an alpha launch model on it, and I\u2019m not able to suggest it to anybody who isn\u2019t keen to take a major danger.<\/p>\n<p>I\u2019ve put it by way of sufficient testing that I\u2019m OK utilizing it myself. I\u2019ve shipped my first plugin that makes use of it, datasette-agent-micropython. I\u2019ve additionally locked GPT-5.5 xhigh in that Datasette Agent plugin and challenged it to interrupt out of the sandbox and to this point it has not managed to.<\/p>\n<p>I\u2019m hoping this implementation can persuade some corporations with skilled safety groups and high-stakes issues to decide to utilizing Python in WebAssembly as a sandboxing strategy and open supply their very own options.<\/p>\n<\/div>\n<p><br \/>\n<br \/><a href=\"https:\/\/simonwillison.net\/2026\/Jun\/6\/micropython-in-a-sandbox\/#atom-everything\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working Python code in a sandbox with MicroPython and WASM sixth June 2026 I\u2019ve been experimenting with completely different approaches to working code in a sandbox for a number of years now, however my newest try feels prefer it would possibly lastly have the entire traits I\u2019ve been on the lookout for. I\u2019ve launched it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":619,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","fifu_image_alt":"","jnews-multi-image_gallery":[],"jnews_single_post":[],"jnews_primary_category":[],"jnews_override_bookmark_settings":[],"jnews_social_meta":[],"jnews_override_counter":[],"footnotes":""},"categories":[2],"tags":[362,903,219,845,902,904],"class_list":["post-617","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-research-breakthroughs","tag-code","tag-micropython","tag-python","tag-running","tag-sandbox","tag-wasm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Working Python code in a sandbox with MicroPython and WASM - Future News 24<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Working Python code in a sandbox with MicroPython and WASM - Future News 24\" \/>\n<meta property=\"og:description\" content=\"Working Python code in a sandbox with MicroPython and WASM sixth June 2026 I\u2019ve been experimenting with completely different approaches to working code in a sandbox for a number of years now, however my newest try feels prefer it would possibly lastly have the entire traits I\u2019ve been on the lookout for. I\u2019ve launched it [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/\" \/>\n<meta property=\"og:site_name\" content=\"Future News 24\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-06T03:53:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-06T16:59:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg\" \/><meta property=\"og:image\" content=\"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg\" \/>\n<meta name=\"author\" content=\"Future News 24\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Future News 24\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/\"},\"author\":{\"name\":\"Future News 24\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#\\\/schema\\\/person\\\/cecad1bde21cfc357cf70128144d6c83\"},\"headline\":\"Working Python code in a sandbox with MicroPython and WASM\",\"datePublished\":\"2026-06-06T03:53:00+00:00\",\"dateModified\":\"2026-06-06T16:59:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/\"},\"wordCount\":1795,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/static.simonwillison.net\\\/static\\\/2026\\\/micropython-card.jpg\",\"keywords\":[\"Code\",\"MicroPython\",\"Python\",\"running\",\"sandbox\",\"WASM\"],\"articleSection\":[\"AI Research &amp; Breakthroughs\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/\",\"url\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/\",\"name\":\"Working Python code in a sandbox with MicroPython and WASM - Future News 24\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/static.simonwillison.net\\\/static\\\/2026\\\/micropython-card.jpg\",\"datePublished\":\"2026-06-06T03:53:00+00:00\",\"dateModified\":\"2026-06-06T16:59:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#primaryimage\",\"url\":\"https:\\\/\\\/static.simonwillison.net\\\/static\\\/2026\\\/micropython-card.jpg\",\"contentUrl\":\"https:\\\/\\\/static.simonwillison.net\\\/static\\\/2026\\\/micropython-card.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/2026\\\/06\\\/06\\\/atom-everything-4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/futurenews24.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Working Python code in a sandbox with MicroPython and WASM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#website\",\"url\":\"https:\\\/\\\/futurenews24.com\\\/\",\"name\":\"Future News 24\",\"description\":\"The Smart Hub for AI and Next-Gen Innovation\",\"publisher\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/futurenews24.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#organization\",\"name\":\"Future News 24\",\"url\":\"https:\\\/\\\/futurenews24.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/futurenews24.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/fn24-favicon.png\",\"contentUrl\":\"https:\\\/\\\/futurenews24.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/fn24-favicon.png\",\"width\":250,\"height\":250,\"caption\":\"Future News 24\"},\"image\":{\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/futurenews24.com\\\/#\\\/schema\\\/person\\\/cecad1bde21cfc357cf70128144d6c83\",\"name\":\"Future News 24\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g\",\"caption\":\"Future News 24\"},\"sameAs\":[\"https:\\\/\\\/futurenews24.com\"],\"url\":\"https:\\\/\\\/futurenews24.com\\\/index.php\\\/author\\\/mridulpahuja20\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Working Python code in a sandbox with MicroPython and WASM - Future News 24","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/","og_locale":"en_US","og_type":"article","og_title":"Working Python code in a sandbox with MicroPython and WASM - Future News 24","og_description":"Working Python code in a sandbox with MicroPython and WASM sixth June 2026 I\u2019ve been experimenting with completely different approaches to working code in a sandbox for a number of years now, however my newest try feels prefer it would possibly lastly have the entire traits I\u2019ve been on the lookout for. I\u2019ve launched it [&hellip;]","og_url":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/","og_site_name":"Future News 24","article_published_time":"2026-06-06T03:53:00+00:00","article_modified_time":"2026-06-06T16:59:28+00:00","og_image":[{"url":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","type":"","width":"","height":""},{"url":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","type":"","width":"","height":""}],"author":"Future News 24","twitter_card":"summary_large_image","twitter_image":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","twitter_misc":{"Written by":"Future News 24","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#article","isPartOf":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/"},"author":{"name":"Future News 24","@id":"https:\/\/futurenews24.com\/#\/schema\/person\/cecad1bde21cfc357cf70128144d6c83"},"headline":"Working Python code in a sandbox with MicroPython and WASM","datePublished":"2026-06-06T03:53:00+00:00","dateModified":"2026-06-06T16:59:28+00:00","mainEntityOfPage":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/"},"wordCount":1795,"commentCount":0,"publisher":{"@id":"https:\/\/futurenews24.com\/#organization"},"image":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#primaryimage"},"thumbnailUrl":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","keywords":["Code","MicroPython","Python","running","sandbox","WASM"],"articleSection":["AI Research &amp; Breakthroughs"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/","url":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/","name":"Working Python code in a sandbox with MicroPython and WASM - Future News 24","isPartOf":{"@id":"https:\/\/futurenews24.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#primaryimage"},"image":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#primaryimage"},"thumbnailUrl":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","datePublished":"2026-06-06T03:53:00+00:00","dateModified":"2026-06-06T16:59:28+00:00","breadcrumb":{"@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#primaryimage","url":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg","contentUrl":"https:\/\/static.simonwillison.net\/static\/2026\/micropython-card.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/futurenews24.com\/index.php\/2026\/06\/06\/atom-everything-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/futurenews24.com\/"},{"@type":"ListItem","position":2,"name":"Working Python code in a sandbox with MicroPython and WASM"}]},{"@type":"WebSite","@id":"https:\/\/futurenews24.com\/#website","url":"https:\/\/futurenews24.com\/","name":"Future News 24","description":"The Smart Hub for AI and Next-Gen Innovation","publisher":{"@id":"https:\/\/futurenews24.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/futurenews24.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/futurenews24.com\/#organization","name":"Future News 24","url":"https:\/\/futurenews24.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/futurenews24.com\/#\/schema\/logo\/image\/","url":"https:\/\/futurenews24.com\/wp-content\/uploads\/2026\/06\/fn24-favicon.png","contentUrl":"https:\/\/futurenews24.com\/wp-content\/uploads\/2026\/06\/fn24-favicon.png","width":250,"height":250,"caption":"Future News 24"},"image":{"@id":"https:\/\/futurenews24.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/futurenews24.com\/#\/schema\/person\/cecad1bde21cfc357cf70128144d6c83","name":"Future News 24","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d57f07142d73cb5503ab2446ea7bc9ef3d0a5ba378d64a6157692311e42bf097?s=96&d=mm&r=g","caption":"Future News 24"},"sameAs":["https:\/\/futurenews24.com"],"url":"https:\/\/futurenews24.com\/index.php\/author\/mridulpahuja20\/"}]}},"_links":{"self":[{"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/posts\/617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/comments?post=617"}],"version-history":[{"count":1,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/posts\/617\/revisions"}],"predecessor-version":[{"id":618,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/posts\/617\/revisions\/618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/media\/619"}],"wp:attachment":[{"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/media?parent=617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/categories?post=617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/futurenews24.com\/index.php\/wp-json\/wp\/v2\/tags?post=617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}