GoSched

Production-ready real-time task scheduler — RM, EDF, LLF, custom heap, gRPC, Prometheus.

Go 1.22+ MIT gRPC Prometheus Docker

Algorithms

RM

Rate Monotonic — static priority by period. Liu & Layland 69% bound.

EDF

Earliest Deadline First — optimal uniprocessor dynamic scheduling.

LLF

Least Laxity First — minimum slack, reordering as time advances.

Heap

Custom binary min-heap. O(log n) push, pop, heapify.

Live simulation preview

Gantt · EDF · 4 workers
Worker-1
Rendering
Worker-2
Data Backup
Worker-3
Log Rotation
Worker-4
idle
92%
CPU util
45ms
Avg wait
12
Queue depth
EDF
Algorithm

Stack

gRPC + REST

Schedule workloads over HTTP JSON or protobuf RPC.

Prometheus

Metrics endpoint with Grafana dashboard via Docker Compose.

Plugins

Load custom .so schedulers or use NewCustom in Go.

CLI

schedule · visualize · benchmark · serve

Quick start

$ go install github.com/krwg/gosched/cmd/scheduler@latest
$ gosched schedule --algorithm=edf --tasks=tasks.json
$ docker compose up --build -d

Explore