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

@computesdk/namespace

v1.6.42

Published

Namespace provider for ComputeSDK - cloud-native sandboxes with optional GPU support

Readme

@computesdk/namespace

Namespace provider for ComputeSDK that enables creating and managing containerized sandboxes on Namespace's infrastructure.

Installation

npm install @computesdk/namespace

Configuration

The Namespace provider requires the following environment variable:

NSC_TOKEN=your_namespace_token

Usage

import { namespace } from '@computesdk/namespace';

const compute = namespace({
  token: 'your_token'
});

// Create a sandbox
const sandbox = await compute.instances.create();
console.log(`Created sandbox: ${sandbox.instanceId}`);

// List all sandboxes
const sandboxes = await compute.instances.list();

// Destroy the sandbox
await sandbox.destroy();

Passing Namespace API fields through

create() accepts raw Namespace API fields, merged as-is (snake_case) into the request. containerOptions goes into the container's ContainerRequest, and instanceOptions into CreateInstanceRequest. Fields the provider sets itself (shape, deadline, container name/args/env) take precedence, and the image is always chosen by image (image_ref/known_image_id in containerOptions are ignored).

// Inject the instance's workload token into the container at /var/run/nsc
const sandbox = await compute.instances.create({
  containerOptions: { nsc_state_path: '/var/run/nsc' },
});

Currently Implemented

Sandbox Operations

  • create() - Creates a new Namespace compute instance with container deployment
  • getById() - Retrieves a specific Namespace instance by ID
  • list() - Lists all Namespace instances in the account
  • destroy() - Deletes a Namespace instance

Configuration Options

  • token - Namespace API authentication token

Notes

  • Instances are automatically deployed upon creation
  • Instance names are generated automatically
  • All operations use Namespace's compute API
  • Environment variables take precedence over config options
  • Instances are immediately deleted when destroyed (no delayed deletion)

Standard sizes (local discovery)

provider.sizes.list() / resolve('sm', context?) declares exact sm, md, lg, and xl CPU/RAM requests for Linux amd64 only. create({ sizeClass: 'sm' }) requests instanceOptions.shape.virtual_cpu: 1 and memory_megabytes: 2048. Per-create standard requests override factory CPU/RAM defaults while preserving other instance options. Combining them with explicit native CPU/RAM fields is an error, even when the numbers match. Non-Linux/unverified architectures and xs/2xl remain unknown. Legacy native shape overrides are unchanged.

These are adapter-declared requests based on the documented Linux machine-shape catalog, not account/region availability checks or observed resources. Discovery never reads token files or calls Namespace. Successful standardized creates expose frozen instance.sizing request metadata.

Unit boundary: the official Namespace TypeScript SDK compute example explicitly describes 4 GiB using memoryMegabytes: 4 * 1024. Accordingly the resolver sends canonical MiB numbers unchanged to the corresponding native memory_megabytes field (2048/4096/8192/16384); no decimal-MB conversion is performed. This is documented request-unit evidence, not a measurement of delivered bytes or an inference solely from machine-shape “GB” labels. Factory CPU/RAM values are defaults overridden by sizeClass; explicit per-create CPU/RAM selectors, including ambiguous aliases, are rejected instead.

Standard platform context must use enumerable own data properties; present os/machine_arch selectors must be strings, not null/undefined. The resolved patch explicitly carries the verified Linux/amd64 platform into the native request, so a factory default cannot diverge from the declared mapping. Legacy creates without sizeClass retain their original descriptor behavior.