@enfyra/kernel

中文文档
2.1.6发布于 2026/11/04Elastic-2.0TypeScriptCommonJS近 30 天下载 3016

Enfyra 内核运行时间

中文使用文档
文档目录3 节
  1. 动态背景
  2. 使用
  3. 执行者能力

@enfyra/ 内核

Enfyra内核运行时包.

动态背景

孤立的执行器快照可复制 $ctx 自动键入沙盒。 运行时平台可以在不改变内核的情况下从自己的上下文厂中暴露出新的数据字段,同时保护运行时能力,例如 $helpers, (中文(简体) ), $cache, (中文(简体) ), $repos, (中文(简体) ), $socket, (中文(简体) ), $throw, (中文(简体) ), $trigger, (中文(简体) ), $logs, (中文(简体) ), $req,以及 $res 保持内核管理. $env 当主机应用程序提供时, 沙盒内可读取, 但沙盒变异到 $env 不合并为主机上下文.

使用

import { createEnfyraKernel } from '@enfyra/kernel';

const kernel = createEnfyraKernel({
  knexService,
  mongoService,
  databaseConfigService,
  runtimeMetricsCollectorService,
  lazyRef,
  getPackageCacheService: () => packageCacheService,
  getPackageCdnLoaderService: () => packageCdnLoaderService,
});

container.register({
  queryBuilderService: asValue(kernel.queryBuilderService),
  isolatedExecutorService: asValue(kernel.isolatedExecutorService),
  executorEngineService: asValue(kernel.executorEngineService),
});

执行者能力

每个运行程序执行多个独立任务拥有 ivm.Isolate 实例,最多 isolatesPerWorker。每次执行都会形成自己的孤立 上下文直接显示在发送时,没有闲置的隔离储备池。 完成 或取消只处理此任务的隔离; 其他 任务在工人持续运行。 一批的钩子和处理器 分享该批的 隔离 没有共享道或多任务堆积.

使用有效的 CPU 和容器选择最多两个运行程序 记忆。 接纳能力和隔离堆积的限制是独立的政策. 招生使用25%的内存规划预算,40–128 MiB规划单元,CPU 基线/灵活单位计数,每个单位6个独立执行档. 这是能力算术,不是共享隔离或通道:每个被认可的任务 仍然拥有它的隔离。 2个基B以下,每名跑者使用一个单元 剖面图为每跑者128个单元。 14个 CPU / 36 GiB 简介 允许 每名工人有216个任务隔离,或总共432个.

每个隔离点的原生堆积极限是有效内存除以32,并有一个 40 MiB 最低且没有固定的 MB 上限. 限制不是预先分配的内存,而且 它们的总和可能超过物理记忆。 父母采用RSS后压; 运行, packet- child, IPC 和主机内存仍然处于隔离堆积限制之外. 大型同时进行的任务仍然可以耗尽真实的内存,因此基准 目标硬件的预期有效载荷和货币.

computeEngineTuning({ logicalCpuCount, totalMemoryBytes, maxIsolatesPerWorker }) 能够降低每个工人拥有主机配置的能力。 自定义执行器 tuning 包含 maxConcurrentWorkers, (中文(简体) ), isolatesPerWorker,以及 isolateMemoryLimitMb。排队任务仅在前期任务解除后开始 隔离能力. $body 和准确的 $req.rawBody 继续提供.

运行 yarn test:executor-isolates 能力与故障控制。 从不 在模糊隔离或跑道丢失后自动重放任务.

版本与发布记录

@enfyra/kernel 共发布 110 个版本,首次发布于 2026/04/30;过去 12 个月发布了 110 个版本。

版本发布日期距今
2.1.6latest2026/11/049 天前
2.1.52026/11/0113 天前
2.1.42026/10/2717 天前
2.1.32026/10/2717 天前
2.1.22026/10/2717 天前
2.1.12026/10/2717 天前

关于 @enfyra/kernel 的常见问题

@enfyra/kernel 是什么?

Enfyra 内核运行时间

如何安装 @enfyra/kernel?

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

@enfyra/kernel 支持 TypeScript 吗?

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

@enfyra/kernel 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@enfyra/kernel 可以商用吗?

@enfyra/kernel 使用 Elastic-2.0 许可。声明的许可为 Elastic-2.0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@enfyra/kernel 的下载量有多少?

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

@enfyra/kernel 还在维护吗?

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