Skip to content
@go-proc

go-proc

go-proc

go-proc

Pure-Go process-lifecycle primitives — reap, supervise, respawn. No cgo.

🌐 Website · 📚 Documentation

Docs License: BSD-3-Clause Go 1.26.4+ Coverage 100%


go-proc is a set of pure-Go (no cgo) primitives for supervising the lifecycle of processes — the small, reusable pieces an init or a workload manager needs: a PID-1 subreaper, a process supervisor, and a restart/reconcile state machine. They were extracted from a microVM init and generalized so they depend on no particular workload model, transport, or scheduler.

Reap orphans. Supervise children. Respawn on your terms.

Each library is CGO-free, dependency-free, 100% test-covered (including error branches), race-tested, and green across the six 64-bit Go targets (amd64, arm64, riscv64, loong64, ppc64le, s390x).

Repositories

Repo What it is
supervisor a PID-1 subreaper (SIGCHLD + Wait4, Linux, with a portable no-op stub elsewhere) and a process supervisor that drives a pluggable Runtime over a Spec of Procs, correlates exits back to the owning process, and restarts per RestartPolicy
respawn a restart / reconcile state machine — grace-period debounce (anti-flap), max_restarts sliding-window anti-thrash, and constant/exponential backoff — a pure Decide core wrapped in a concurrent per-unit Reconciler
docs MkDocs Material documentation, versioned with mike, served at /docs/
go-proc.github.io the Hugo landing page
brand logos and brand assets

Principles

  • Pure Go, zero cgo. Cross-compiles and embeds anywhere; a static binary by default. Linux-specific syscalls (the subreaper) sit behind build tags with a portable stub, so go build / go vet stay green on every OS.
  • Generic, not weft-shaped. No dependency on any workload schema, gRPC, or health checker — a Runtime interface, an Actions interface, and local value types are the only seams.
  • A pure decision core. Scheduling is a pure function of (policy, history, signal, now); the concurrency lives in a thin shell around it, so every decision is unit-testable against a fixed clock.
  • 100% test coverage, including every error branch, is the target — enforced as a CI gate on each library.

Status

Both primitives shipped. supervisor (subreaper + supervisor) and respawn (restart state machine) are released at 100% coverage, race-tested, gofmt + go vet clean, CI green across all six 64-bit Go arches.

BSD-3-Clause.

Popular repositories Loading

  1. brand brand Public

    go-proc brand assets

  2. supervisor supervisor Public

    Pure-Go PID-1 subreaper + process supervisor: reap orphans, drive a pluggable runtime, restart per policy (CGO-free, 6-arch).

    Go

  3. respawn respawn Public

    Pure-Go restart/reconcile state machine: grace debounce, sliding-window anti-thrash, exponential backoff (CGO-free, 6-arch).

    Go

  4. .github .github Public

    go-proc org profile, shared renovate config, and license.

  5. go-proc.github.io go-proc.github.io Public

    go-proc org landing page (Hugo).

    HTML

  6. docs docs Public

    Versioned docs (MkDocs Material + mike) for go-proc: pure-Go process-lifecycle primitives — supervisor + respawn. Served at go-proc.github.io/docs/.

Repositories

Showing 6 of 6 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…