@computesdk/microsandbox

中文文档
0.1.26发布于 2026/11/10MITTypeScriptESM + CJS构建来源已验证近 30 天下载 1万

带有本地和云微VM后端的计算SDK微软盒提供商

中文使用文档
文档目录7 节
  1. 所需资源
  2. 安装
  3. 云快开始
  4. 本地快速启动
  5. 配置
  6. 后端支持
  7. 许可证

@computesdk/microsandbox (英语)

计算SDK的Microsandbox提供商. 它运行相同的沙盒API来对抗被硬件同化的本地微VM或微沙盒云.

所需资源

  • 22号节点或更新
  • 云后端:微软箱云访问和API密钥
  • 本地后端: 苹果硅上的 macOS, 有 KVM 的 Linux, 或 Windows 有 Windows Hypervisor 平台的 Windows

安装

npm install computesdk @computesdk/microsandbox

云快开始

云是默认后端. 直接传递一个 API 密钥或省略该密钥以使用 SDK 的微软盒 MSB_API_KEY, (中文(简体) ), MSB_PROFILE,或主动曝光分辨率:

import { compute } from 'computesdk';
import { microsandbox } from '@computesdk/microsandbox';

compute.setConfig({
  provider: microsandbox({
    apiKey: process.env.MSB_API_KEY,
    image: 'node:22',
  }),
});

const sandbox = await compute.instances.create();
const result = await sandbox.runCommand('node --version');
console.log(result.stdout);
await sandbox.destroy();

本地快速启动

明确选择本地后端, 当沙盒在呼叫机上运行时 。 本地模式不需要账户或 API 密钥 :

import { compute } from 'computesdk';
import { microsandbox } from '@computesdk/microsandbox';

compute.setConfig({
  provider: microsandbox({
    backend: 'local',
    image: 'node:22',
    ports: [{ host: 3000, guest: 3000 }],
  }),
});

const sandbox = await compute.instances.create();
await sandbox.filesystem.writeFile('/tmp/hello.js', 'console.log("hello")');
console.log((await sandbox.runCommand('node /tmp/hello.js')).stdout);
await sandbox.destroy();

通话 microsandbox() 没有配置则通过微软盒SDK的标准环境和活性可视分辨率使用云. 如果没有云证书解, 提供者报告如何配置云或选择加入 backend: 'local'它从不默默地回到当地.

酌情使用命名的云配置文件而不是 API 密钥 :

const provider = microsandbox({ profile: 'production' });

配置

interface MicrosandboxConfig {
  backend?: 'cloud' | 'local'; // Defaults to cloud
  apiKey?: string;             // Falls back to MSB_API_KEY
  apiUrl?: string;             // Optional endpoint override; requires apiKey
  profile?: string;            // Named cloud profile; mutually exclusive with apiKey/apiUrl
  image?: string;
  cpus?: number;
  memoryMib?: number;
  rootDiskMib?: number;
  ephemeral?: boolean;         // Delete on stop; defaults to true
  workdir?: string;
  namePrefix?: string;
  ports?: Array<number | { host: number; guest: number; bind?: string }>;
  timeout?: number;           // Idle and command timeout in milliseconds; defaults to 900_000 (15 minutes)
  pullPolicy?: 'always' | 'if-missing' | 'never';
  networkEnabled?: boolean;
}

单放箱 image, (中文(简体) ), templateId, (中文(简体) ), snapshotId, (中文(简体) ), cpus, (中文(简体) ), vcpus, (中文(简体) ), memory, (中文(简体) ), memoryMb, (中文(简体) ), memoryMiB, (中文(简体) ), memoryMib, (中文(简体) ), memMiB, (中文(简体) ), rootDiskMib, (中文(简体) ), ephemeral, (中文(简体) ), timeout, (中文(简体) ), name, (中文(简体) ), envs, (中文(简体) ), metadata,以及 ports 选项可酌情推翻或扩展提供者的默认.

后端支持

业务同时使用选定的全过程后端运行. 在服务商运行时不要更改本地 SDK 默认后端 .

方法当地云头
create, (中文(简体) ), getById, (中文(简体) ), list, (中文(简体) ), destroy对对
runCommand 和活输出回调对对
filesystem对对
getInfo对对
getUrl是, 对于创建前已声明的端口目前没有
snapshot是, 磁盘状态目前没有

本地快照停止了沙盒,捕获其可写取的根盘并重新启动. 该磁盘上的文件在恢复后幸存, 但 tmpfs 路径例如 /tmp 和运行的流程不被捕获。 Microsandbox 云目前不支持已发布的端口或磁盘快照,因此这些方法在云上返回明显不支持的错误.

许可证

麻省理工学院

沙盒默认为麻黄,停放时被删除. 他们的默认闲置超时为15分钟,通过本地 SDK 配置 idleTimeout(900)设置 ephemeral: false 在停止后保留沙盒,并使用 timeout (milliseconds)来覆盖闲置的超时和默认的命令超时. 适配器没有设定最长寿命.

每个进程使用一个后端配置. 同时期操作共享该配置;第一个成功的后端选择保留在进程的寿命. 后来有不同资质,端点,配置文件或后端选择的请求在更改SDK后端前被否决. 各地使用相同的显式配置,或始终使用SDK环境/显式分辨率.

版本与发布记录

@computesdk/microsandbox 共发布 26 个版本,首次发布于 2026/08/19;过去 12 个月发布了 26 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.26latest2026/11/10今天
0.1.252026/11/064 天前
0.1.242026/11/046 天前
0.1.232026/10/3110 天前
0.1.222026/10/2812 天前
0.1.212026/10/2813 天前

关于 @computesdk/microsandbox 的常见问题

@computesdk/microsandbox 是什么?

带有本地和云微VM后端的计算SDK微软盒提供商

如何安装 @computesdk/microsandbox?

在项目目录运行 npm install @computesdk/microsandbox,或使用 pnpm add / yarn add / bun add。

@computesdk/microsandbox 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@computesdk/microsandbox 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@computesdk/microsandbox 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@computesdk/microsandbox 可以商用吗?

@computesdk/microsandbox 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@computesdk/microsandbox 的下载量有多少?

根据 npm 官方下载统计,@computesdk/microsandbox 在 2026/10/11 – 2026/11/09 这 30 天内被下载 10,208 次,日均约 340 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@computesdk/microsandbox 还在维护吗?

最新版本 0.1.26 发布于 2026/11/10(今天);至今共发布 26 个版本,其中过去 12 个月发布了 26 个;首次发布于 2026/08/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。