Skip to content

Releases: krwg/gosched

GoSched v1.1.0

Choose a tag to compare

@krwg krwg released this 04 Jul 22:19

GoSched v1.1.0 — Docker & observability stack

Adds a one-command production-style demo environment.

New

  • Dockerfile — multi-stage, distroless-style Alpine image
  • docker-compose.yml — GoSched + Prometheus + Grafana
  • Grafana dashboard — schedules, wait time, CPU util, completed/missed
  • docs/deployment.md — runbook and smoke tests
  • Makefiledocker-up, docker-down, docker-logs

Try it

git clone https://github.com/krwg/gosched.git
cd gosched
docker compose up --build -d
curl -s -X POST http://localhost:8080/api/v1/schedule \
  -H "Content-Type: application/json" \
  -d @tests/fixtures/tasks.json
Service URL
GoSched http://localhost:8080
Prometheus http://localhost:9090
Grafana http://localhost:3000 (admin / gosched)

Includes everything from v1.0.0.

GoSched v1.0.0

Choose a tag to compare

@krwg krwg released this 04 Jul 22:19

GoSched v1.0.0 — Initial release

Production-ready real-time task scheduler for Go portfolios and backend systems.

Core

  • Algorithms: Rate Monotonic (RM), Earliest Deadline First (EDF), Least Laxity First (LLF)
  • Custom binary heap with O(log n) push/pop
  • Discrete-event engine with async task intake and worker pool
  • CLI: schedule, visualize, benchmark

APIs and observability

  • HTTP RESTPOST /api/v1/schedule, GET /health, GET /metrics
  • gRPCSchedule, Health (proto in api/proto/)
  • Prometheus metrics — completed/missed tasks, wait time, CPU util, queue depth
  • Gantt charts — ASCII console + PNG export

Extensibility

  • Go plugins (.so on Linux/macOS) via --plugin
  • Custom schedulers via scheduler.NewCustom

Quality

  • Unit + integration tests, benchmarks, GitHub Actions CI
  • Docs: architecture, algorithms, API, plugins

Quick start

go install github.com/krwg/gosched/cmd/scheduler@latest
gosched schedule --algorithm=edf --tasks=tests/fixtures/tasks.json
gosched serve --http :8080 --grpc :50051