Skip to main content

vlambda

An ASGI-like server for Python lambdas, written in V. Uses vcraft for the V↔Python bridge.

Live at: https://vlambda.ricardorobles.es

What is vlambda?

vlambda lets you write Python functions ("lambdas") and serve them as HTTP endpoints. It's like AWS Lambda, but self-hosted, with no cold starts, and ~0.3ms per invocation.

def handler(request):
    return {"msg": "hello", "path": request.path}

POST that code to /vlambda and it becomes GET /f/<slug> instantly.

Features

  • No cold starts — lambdas are compiled once and cached in memory
  • Fast — ~3,000 req/s (concurrent, free-threaded Python), ~0.3ms/req
  • Auth — JWT-based authentication with per-user ownership
  • Web UI — Dashboard for managing lambdas, code editor, metrics
  • Async invocation — Fire-and-forget with task tracking
  • Sandbox — nsjail namespaces in Docker, plus restricted Python builtins and blocked modules
  • Metrics — Prometheus-compatible + Chart.js dashboard
  • Per-lambda method — GET, POST, PUT, PATCH, DELETE
  • Naming — Human-readable names for lambdas
  • Multi-file projects — ZIP uploads, file editor, requirements.txt/pyproject.toml
  • Versions and aliases — rollback and prod/staging aliases
  • PyPI packages — install per lambda/project from the UI
  • Persistent metrics and logs — survive restarts, queryable by slug/name
  • CORS — applied to every /f/ response, with OPTIONS preflight
  • Static files — projects serve index.html, CSS, JS and assets at /f/<slug>/<path>
  • API tokens — long-lived tokens with scopes and revocation
  • Export / import / duplicate — move lambdas and projects as JSON
  • POC templates — HTML + fetch, webhook, JSON API, static site
  • Free-threaded builds — cp314t/cp315t wheels

Installation

uv pip install vlambda

Or with pip:

pip install vlambda

Usage

python -m vlambda --port 8080 --sqlite_path ./vlambda.db --num_coroutines 10

Or with environment variables:

VLAMBDA_PORT=8080 VLAMBDA_DB=./vlambda.db VLAMBDA_COROUTINES=10 python -m vlambda

Then open http://localhost:8080/ in your browser.

Build a POC in five minutes

  1. Open the UI and log in.
  2. Pick a template in New lambda (JSON API + CORS, Webhook receiver, Form receiver, HTML page…) and create it.
  3. Open the invoke URL https://your-host/f/<slug>.
  4. Need files? Upload a ZIP in Upload project; anything in the project is served at /f/<slug>/<path> and any unknown path runs handler(request).

More complete examples live in examples/: a static site, an HTML + fetch POC, a webhook receiver and a JSON API.

API tokens

Create a token in System → API tokens, or with the API:

curl -X POST "$VLAMBDA_URL/tokens" \
  -H "Authorization: Bearer $JWT" \
  -H "Content-Type: application/json" \
  -d '{"name":"ci","scopes":["read","write"]}'

The response contains the token (vl_…) once. Use it as Authorization: Bearer vl_…. Scopes are read, write and admin; revoke a token with DELETE /tokens/<id>. Tokens do not expire.

Docker + Dokploy

The repository includes a production image (Dockerfile, installs from PyPI) and a development image (Dockerfile.dev, builds the local wheel). Both use a free-threaded Python 3.14 venv, run each invocation in nsjail and expose plain HTTP on port 8080; Dokploy (or another proxy) handles TLS and the public domain.

nsjail needs unprivileged user namespaces, so the container must run with --security-opt seccomp=unconfined (nsjail applies its own seccomp policy to the sandbox) or an equivalent custom profile. The compose files already set it.

export VLAMBDA_SECRET="$(openssl rand -hex 32)"
export VLAMBDA_ADMIN_TOKEN="$(openssl rand -hex 32)"
docker compose -f docker/compose.yml up -d --build

With Dokploy, create an application from the image, map the domain to container port 8080, and set VLAMBDA_SECRET and VLAMBDA_ADMIN_TOKEN. Dokploy terminates TLS, so the container does not manage certificates.

See docker/README.md for details, limits and the reset command.

CLI Options

Flag Env Var Default Description
--port VLAMBDA_PORT 8080 Listen port
--sqlite_path VLAMBDA_DB ./vlambda.db SQLite database path
--num_coroutines VLAMBDA_COROUTINES 10 Worker pool size
--max_body_size VLAMBDA_MAX_BODY 1048576 Max request body (bytes)
--rate_limit VLAMBDA_RATE_LIMIT 100 Requests/sec per IP
--invoke_timeout VLAMBDA_TIMEOUT 30 Lambda invocation timeout (s)
--max_memory_mb VLAMBDA_MAX_MEMORY_MB 0 RAM limit (0=unlimited)
--cors_origin VLAMBDA_CORS * CORS allowed origin
--cert VLAMBDA_CERT TLS certificate path
--key VLAMBDA_KEY TLS key path
VLAMBDA_REGISTRATION 1 Allow public registration (0 disables it)

API

Authentication

  • GET /config — Public runtime flags (whether registration is open)
  • POST /register — Register user (body: username:password); returns 403 when registration is disabled
  • POST /login — Login (body: username:password) → JWT token
  • POST /admin/users — Create a user with X-Admin-Token and body username:password (for closed registration)

Lambdas (requires auth)

  • POST /vlambda?method=GET&name=my-lambda — Create lambda (body: Python code)
  • GET /vlambda — List lambdas (pipe-delimited)
  • GET /vlambda?format=json — List lambdas as JSON
  • GET /vlambda/<slug> — Get lambda code
  • PUT /vlambda/<slug>?method=POST&name=new-name — Update lambda
  • DELETE /vlambda/<slug> — Delete lambda

API tokens (requires auth)

  • POST /tokens — Create a token: {"name":"ci","scopes":["read","write"]}
  • GET /tokens — List tokens (never returns the secret)
  • DELETE /tokens/<id> — Revoke a token

Tokens are accepted anywhere a JWT is accepted. read allows listing and reading, write allows mutating lambdas/projects, admin allows token management and admin routes.

Export / import

  • GET /vlambda/<slug>/export — Export code or project files as JSON
  • POST /vlambda/import — Create from an exported JSON body
  • POST /vlambda/<slug>/duplicate — Copy a lambda or project

Project exports include text files. Binary files are listed in skipped_files and are not copied.

Invocation

  • GET/POST/PUT/PATCH/DELETE /f/<slug> — Invoke lambda (method must match)
  • OPTIONS /f/<slug> — CORS preflight (returns 204)
  • GET /f/<slug>/<path> — Serve a project file, or invoke the handler if the file does not exist
  • POST /async/<slug> — Async invoke (returns task_id)
  • GET /task/<id> — Get async task result

Projects

  • POST /vlambda?project=1&entry=main.py — Upload a ZIP project (base64 body)
  • GET /project/<slug> — Read project files
  • PUT /project/<slug> — Save project files
  • GET /f/<slug>/ — Serve index.html
  • GET /f/<slug>/<path> — Serve a static file (vendor/, .git/ and .. blocked)

Versions and aliases

  • GET /vlambda/<slug>/versions — List versions
  • GET /vlambda/<slug>/version/<n> — Read a version
  • POST /vlambda/<slug>/rollback?version=<n> — Roll back
  • GET /vlambda/<slug>/aliases — List aliases
  • POST /vlambda/<slug>/alias?name=prod&version=<n> — Create alias
  • GET /f/<slug>?alias=prod — Invoke an alias

Packages

  • GET /vlambda/<slug>/packages — List requirements
  • POST /vlambda/<slug>/packages — Install PyPI packages into the vendor dir

Monitoring (requires auth)

  • GET /health — Health check
  • GET /ready — Readiness
  • GET /metrics — Prometheus metrics
  • GET /metrics/json — Live JSON metrics
  • GET /metrics/history?days=N&slug= — Raw persisted metrics
  • GET /metrics/stats?days=N&slug= — p50/p95/p99
  • GET /metrics/aggregate?days=N&slug= — Per-lambda aggregates
  • GET /metrics/summary?days=N&slug= — Daily rollups
  • GET /metrics/export?days=N&slug= — CSV export
  • DELETE /metrics/history?days=N&slug= — Delete metrics older than N days (days=0 deletes all)
  • GET /logs/history?days=N&slug= — Persisted lambda logs
  • DELETE /logs/history?days=N&slug= — Delete logs older than N days (days=0 deletes all)
  • GET /pool/stats, GET /dlq
  • POST /shutdown — Graceful shutdown

Logging

Lambdas can persist structured logs with request.log():

def handler(request):
    request.log("processing " + request.path)
    request.log("debug details", "debug")
    return {"ok": True}

Logs are stored in the metrics database and can be queried with GET /logs/history?days=1&slug=<slug>. The UI Logs view shows them alongside invocations. The "Save logs" template in the editor is a ready-to-run example.

Metrics and logs are pruned after VLAMBDA_METRICS_RETENTION days (default 7). From the UI you can also prune data older than the selected period, or delete all matching rows, with the current lambda filter applied.

Lambda Format

Every lambda must define a handler function:

def handler(request):
    return {"msg": "hello", "path": request.path}

The request object has: method, path, query_string, headers, body.

Safe builtins: abs, all, any, bool, dict, enumerate, filter, float, int, len, list, map, max, min, range, reversed, round, set, sorted, str, sum, tuple, zip, print, etc.

Blocked modules: os, posix, subprocess, sys, importlib, ctypes, socket, _socket, urllib, http, shutil, pathlib, io, pickle, marshal, resource, fcntl, mmap, sqlite3, etc.

Safe modules: json, math, re, datetime, collections, itertools, functools, hashlib, base64, string, random, statistics, etc.

Security

User code runs inside nsjail with a separate user, PID, mount and network namespace. The sandbox sees only /opt and the current project/vendor (read-only), has no access to /data, cannot read the server's /proc, and has no network. Resource limits and a seccomp deny-list are also applied. The server process and the database stay outside the sandbox.

The Docker image keeps public registration open by default for toy deployments. Set VLAMBDA_REGISTRATION=0 to close it and create users with POST /admin/users instead. A daily data reset removes state, but it does not undo a kernel-level escape. Keep this deployment disposable and do not store valuable secrets in it; for stronger isolation use gVisor, Firecracker or one container per tenant.

Web UI

Open http://localhost:8080/ in your browser for the dashboard:

  • Login/Register
  • Lambda dashboard with search, filter and pagination
  • CodeMirror editor with Python highlighting
  • Multi-file project editor and ZIP upload
  • Versions, rollback and aliases
  • PyPI package installation
  • API playground
  • Persistent metrics with charts and filters
  • Logs viewer with request.log()
  • System status and frontend log drawer

Reset

The demo can be wiped with:

python -m vlambda reset --yes --url http://127.0.0.1:8080 --token "$VLAMBDA_ADMIN_TOKEN"

For a disposable demo, run it from cron every day:

0 3 * * * docker exec -e VLAMBDA_ADMIN_TOKEN="..." <container> /opt/venv/bin/python -m vlambda reset --yes --url http://127.0.0.1:8080

Performance

Metric Value
Cold start 0ms (persistent process)
Warm invocation ~0.3ms
Throughput (concurrent, free-threaded) ~3,000 req/s
Throughput (response cache hits) ~100x faster

Architecture

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   Browser   │────▶│  V HTTP      │────▶│  Python     │
│   (UI)      │◀────│  Server      │◀────│  Pool       │
└─────────────┘     │  (net.http)  │     │  (workers)  │
                    │              │     └─────────────┘
                    │  ┌────────┐  │           │
                    │  │ SQLite │  │           │
                    │  │ (WAL)  │  │     ┌─────────────┐
                    │  └────────┘  │     │  Sandbox    │
                    └──────────────┘     │  (restricted│
                                         │   builtins) │
                                         └─────────────┘

License

MIT License - see LICENSE for details.

Author

Ricardo Robles Fernández - https://github.com/rroblf01/vlambda

Metadata

Release files for vlambda 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vlambda 0.2.1
File Size Uploaded Provenance Actions
vlambda-0.2.1.tar.gz 374.4 kB With provenance Details for vlambda-0.2.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for vlambda 0.2.1
File Actions
vlambda-0.2.1-cp315-cp315t-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64 Details for vlambda-0.2.1-cp315-cp315t-manylinux_2_28_x86_64.whl
vlambda-0.2.1-cp315-cp315t-manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64 Details for vlambda-0.2.1-cp315-cp315t-manylinux_2_28_aarch64.whl
vlambda-0.2.1-cp315-cp315-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64 Details for vlambda-0.2.1-cp315-cp315-manylinux_2_28_x86_64.whl
vlambda-0.2.1-cp315-cp315-manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64 Details for vlambda-0.2.1-cp315-cp315-manylinux_2_28_aarch64.whl
vlambda-0.2.1-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details for vlambda-0.2.1-cp314-cp314t-manylinux_2_28_x86_64.whl
vlambda-0.2.1-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details for vlambda-0.2.1-cp314-cp314t-manylinux_2_28_aarch64.whl
vlambda-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for vlambda-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl
vlambda-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details for vlambda-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl

Total release size: 15.4 MB

Release files / vlambda-0.2.1.tar.gz

Download URL vlambda-0.2.1.tar.gz
Size 374.4 kB
Tags Source
SHA-256 checksum
How to use checksums
485e9e3d6af734554ac7758699a32019ae17cddf7a1907003bb08d8463c792e4
BLAKE2b-256 checksum
How to use checksums
ff80068101f3b4d1cb6a3230276de83a23245349c3c2f3a2942f2f97d016de0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp315-cp315t-manylinux_2_28_x86_64.whl

Download URL vlambda-0.2.1-cp315-cp315t-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4a82c7f6be856e89e92f1e47a93db347920ead9cd4510d38695bc32827ba1194
BLAKE2b-256 checksum
How to use checksums
db303850fb8669c3e186df2f1835999d99f72b950817f79a67aee89f76f28d87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp315-cp315t-manylinux_2_28_aarch64.whl

Download URL vlambda-0.2.1-cp315-cp315t-manylinux_2_28_aarch64.whl
Size 1.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6b20c764dfac9799d5c467126731707ab56c6c6e18f12c1aa927a4fc157a6387
BLAKE2b-256 checksum
How to use checksums
e880b7de1473ecd2fc195935488acba1197f20b7f176bc573f00d2519d09b4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp315-cp315-manylinux_2_28_x86_64.whl

Download URL vlambda-0.2.1-cp315-cp315-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.15 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
031567e64d123be119df6fa8e7859a4b41d5e8b8d8f978d10317e9cbf47d00f5
BLAKE2b-256 checksum
How to use checksums
3c7461f6f757c6fa942bfd2d23e970c8203bc3f7903bb7adf58a3bdb9c524c22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp315-cp315-manylinux_2_28_aarch64.whl

Download URL vlambda-0.2.1-cp315-cp315-manylinux_2_28_aarch64.whl
Size 1.9 MB
Tags CPython 3.15 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
60f145a3d4e04249468a3252bfbce3b00aa07a476f02bc131b9398d87f9065f5
BLAKE2b-256 checksum
How to use checksums
f3d0ee81c86632b427e8514288bd415a5505a670866dee181511197d7cbaf740
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL vlambda-0.2.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b0a38f8500e549b6283e7aa78f6008df369206a13c4c2c02c012056f0c811556
BLAKE2b-256 checksum
How to use checksums
7792fae472dc705911d0aecbb3ef87684383e3f97f3fdc6fcce344db59a1da53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL vlambda-0.2.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 1.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fbc6062890f13e1e1a19924ec94f81ee3b67c9cf084480a091d520ae9e4cc3ee
BLAKE2b-256 checksum
How to use checksums
3cbb9f2f98fd10fe396f732ac6b96f99d99984c641e6cbcf7d1eb6041c20ce31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL vlambda-0.2.1-cp314-cp314-manylinux_2_28_x86_64.whl
Size 1.9 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
274e9587b7bc499e756e15681336691b2a891af8fa4b2811ef9bf3e821ffe1e1
BLAKE2b-256 checksum
How to use checksums
402a5488a700e9619f2e282686d801d1cfa3231eb790506b9d27adff40174d68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / vlambda-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL vlambda-0.2.1-cp314-cp314-manylinux_2_28_aarch64.whl
Size 1.9 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0e85ed2a36c8748da9491c951d609518f187bd5ed968da4b31646dc54943d00e
BLAKE2b-256 checksum
How to use checksums
95c520f26e32f04842b40c90cbfd9ddb76f68788849564a64bdd02281c34dd89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for vlambda 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for vlambda-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page