npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@enfyra/kernel

v2.1.6

Published

Closed-distribution Enfyra kernel runtime

Readme

@enfyra/kernel

Enfyra kernel runtime package.

Dynamic context

The isolated executor snapshots cloneable $ctx keys into the sandbox automatically. Runtime platforms can expose new data fields from their own context factory without changing the kernel, while protected runtime capabilities such as $helpers, $cache, $repos, $socket, $throw, $trigger, $logs, $req, and $res stay kernel-managed. $env is readable inside the sandbox when provided by the host application, but sandbox mutations to $env are not merged back to the host context.

Use

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),
});

Executor capacity

Each runner process executes multiple independent task-owned ivm.Isolate instances, up to isolatesPerWorker. Each execution creates its own isolate and context directly on dispatch, without an idle isolate reserve pool. Completion or cancellation disposes only that task's isolate; other tasks in the worker keep running. A batch's hooks and handler share that batch's isolate. There is no shared lane or multi-task heap.

Tuning selects up to two runner processes using effective CPU and container memory. Admission capacity and isolate heap limits are independent policies. Admission uses a 25% memory planning budget, a 40–128 MiB planning unit, CPU baseline/flexible unit counts, and six independent execution slots per unit. This is capacity arithmetic, not a shared isolate or lane: each admitted task still owns its isolate. Below 2 GiB, admission uses one unit per runner; larger profiles are bounded at 128 units per runner. A 14 CPU / 36 GiB profile admits 216 task isolates per worker, or 432 total.

Each isolate's native heap limit is effective memory divided by 32, with a 40 MiB minimum and no fixed MB ceiling. Limits are not preallocated RAM, and their sum may exceed physical memory. The parent applies RSS backpressure; runner, package-child, IPC and host memory remain outside isolate heap limits. Large simultaneous tasks can still exhaust real memory, so benchmark the expected payload and concurrency on the target hardware.

computeEngineTuning({ logicalCpuCount, totalMemoryBytes, maxIsolatesPerWorker }) can lower the per-worker capacity for a host-owned profile. A custom executor tuning contains maxConcurrentWorkers, isolatesPerWorker, and isolateMemoryLimitMb. Queued tasks start only after prior tasks release their isolate capacity. $body and the exact $req.rawBody remain available.

Run yarn test:executor-isolates for capacity and failure containment. Never automatically replay a task after ambiguous isolate or runner loss.