TR

taybenlor/runno

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

775 stars 48 forks 质量 80 趋势 42MIT

taybenlor/runno 是从 https://github.com/taybenlor/runno. 导入的 MCP 服务器候选人。

概览

taybenlor/runno 是从 https://github.com/taybenlor/runno. 导入的 MCP 服务器候选人。

概述(AI 翻译)

👨 💻 用Runno👉 Runno.dev

📖 文档 👉 Runno.dev

Runno

Runno 是一个用于多种语言运行代码的 JavaScript 包集合 在一个沙盒里。它由以下包裹组成:

  • @runno/runtime - 用于在浏览器中运行代码示例的网页组件和无头工具。
  • @runno/sandbox - 一个用于在Node及其他JS运行时运行代码示例的安全沙箱。
  • @runno/wasi - 一个同构包,用于在沙箱中运行WebAssembly WASI二进制文件。
  • @runno/mcp - 一个用于运行代码的 MCP 服务器,使用 @runno/sandbox 包。

还有一个已弃用的 Python 包叫 runno 这就像沙盒包一样。

该项目由WASI网络汇编系统支持。 接口。它为程序提供了与 操作系统。通过模拟这个接口,我们可以提供一个假文件系统 以及操作系统,全部运行在JavaScript中。

使用 @runno/runtime

@runno/runtime 包提供了用于在浏览器中运行代码的 Web 组件。

这对编程教育非常有用,意味着:

  • 新手无需安装复杂的编程工具来运行代码

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

👨‍💻 Use Runno 👉 Runno.dev

📖 Documentation 👉 Runno.dev

Runno

Runno is a collection of JavaScript Packages for running code in various languages inside a sandbox. It’s made of the following packages:

  • @runno/runtime - web components and headless tools for running code examples in the browser.
  • @runno/sandbox - a secure sandbox for running code examples in Node and other JS Runtimes.
  • @runno/wasi - an isomorphic package for running WebAssembly WASI binaries inside a sandbox.
  • @runno/mcp - an MCP Server for running code using the @runno/sandbox package.

There’s also a deprecated Python package called runno that works like the sandbox package.

This project is powered by WASI the Web Assembly System Interface. It provides a standard way for programs to interact with an operating system. By emulating this interface, we can provide a fake file system and operating system, all running within JavaScript.

Using @runno/runtime

The @runno/runtime package provides Web Components for running code in the browser.

This is very handy for programming education it means:

  • No need for newbies to install complex programming tools to run code
  • Programming examples can be made runnable in the browser with no server
  • Simple programs can be tested for correctness inside a sandbox on the user’s machine

Quickstart

Start by adding @runno/runtime to your package:

npm install @runno/runtime

Import @runno/runtime in whatever place you’ll be using the runno elements. The simplest is in your entrypoint file (e.g. main.ts or index.ts).

import "@runno/runtime";

Once you’ve imported them you can use runno elements on the page.

 print('Hello, World!') 

For the code to run though, you’ll need to set some HTTP headers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

These create a cross-origin isolated context which allows the use of SharedArrayBuffer used to implement STDIN.

Supported Runtimes

The system supports a number of runtimes based on existing packages published to WAPM. These runtimes are tied to Runno and will be supported by Runno going forward.

  • python - Runs python3 code, not pinned to a particular version but is at least 3.6
  • ruby - Runs standard Ruby, not pinned but is at least 3.2.0
  • quickjs - Runs JavaScript code using the QuickJS engine
  • sqlite - Runs SQLite commands
在 GitHub 查看完整 README

安装

npx @runno/mcp
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "runno": { "command": "npx", "args": ["@runno/mcp"] } } }