MCPcopy Index your code
hub / github.com/WaveSpeedAI/waverless

github.com/WaveSpeedAI/waverless @v1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.2 ↗ · + Follow
2,064 symbols 5,736 edges 164 files 1,571 documented · 76% updated 3mo agov1.0.2 · 2026-02-04★ 629
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

WaveSpeedAI Logo

Waverless

High-performance Serverless GPU Task Orchestration System

<a href="https://wavespeed.ai">🌐 wavespeed.ai</a> •
<a href="https://github.com/WaveSpeedAI/waverless/raw/v1.0.2/docs/ARCHITECTURE.md">📐 Architecture</a> •
<a href="https://github.com/WaveSpeedAI/waverless/raw/v1.0.2/docs/USER_GUIDE.md">📖 User Guide</a> •
<a href="https://github.com/WaveSpeedAI/waverless/raw/v1.0.2/docs/DEVELOPER_GUIDE.md">🔧 Developer Guide</a>

Features

  • 🚀 Pull-based Architecture - Workers actively pull tasks for better load balancing
  • 🔌 RunPod Compatible - Zero-code migration from runpod-python SDK
  • ☸️ Multi-Provider - Kubernetes, Novita Serverless, Docker backends
  • 📊 Smart Autoscaling - Queue-depth, priority, and resource-aware scaling
  • 🛡️ Graceful Shutdown - Zero task loss during rolling updates

Architecture

flowchart TB
    subgraph Clients
        direction LR
        Client[Client V1 API]
        WebUI[Web UI]
    end

    subgraph Core["Waverless API Server"]
        direction TB
        Queue[Task Queue]
        WM[Worker Mgmt]
        Autoscaler[Autoscaler]
        Store[(Redis + MySQL)]
    end

    subgraph Provider
        direction LR
        K8s[K8s]
        Novita[Novita]
        Docker[Docker]
    end

    subgraph Workers
        direction LR
        W1[Worker A]
        W2[Worker B]
        W3[Worker ...]
    end

    Clients -->|submit| Core
    Core --> Provider
    Provider -->|manage| Workers
    Workers -->|pull tasks| Core

    style Clients fill:#4a90a4,color:#fff
    style Core fill:#2d5a7b,color:#fff
    style Provider fill:#5d8aa8,color:#fff
    style Workers fill:#7fb3d3,color:#000

Quick Start

# Local development
docker-compose up -d mysql redis
cp config/config.example.yaml config/config.yaml
go run cmd/main.go

# Kubernetes deployment
./deploy.sh install

API Example

# Submit task
curl -X POST http://localhost:8090/v1/my-endpoint/run \
  -H "Content-Type: application/json" \
  -d '{"input": {"prompt": "hello world"}}'

# Check status
curl http://localhost:8090/v1/status/{task_id}

Documentation

Document Description
Architecture System design, components, data flow, lifecycle
User Guide Deployment, API reference, autoscaling, troubleshooting
Developer Guide Code structure, core design, provider integration

License

MIT License

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 1,079
Function 580
Struct 298
Interface 81
TypeAlias 15
FuncType 11

Languages

Go93%
TypeScript6%
Python1%

Modules by API surface

pkg/provider/k8s/manager.go87 symbols
pkg/store/mysql/interfaces.go77 symbols
pkg/provider/novita/provider.go61 symbols
pkg/resource/releaser_property_test.go52 symbols
pkg/interfaces/deployment.go52 symbols
cmd/jobs.go46 symbols
pkg/provider/k8s/provider.go44 symbols
pkg/resource/releaser_test.go35 symbols
pkg/provider/novita/types.go33 symbols
pkg/provider/novita/provider_test.go32 symbols
web-ui/src/types/index.ts30 symbols
web-ui/src/pages/EndpointDetail/index.tsx29 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add waverless \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page