# contribsys/einhorn

Einhorn: the language-independent shared socket manager

Repository: https://github.com/contribsys/einhorn
Canonical: https://ross.abutalabs.com/products/einhorn
Language: Ruby
License: MIT
License Family: permissive
Last push: 2026-08-13T13:30:44+00:00

## Health v2 (maintenance only)
Score: 66/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 8, longevity 100
- inputs: {"age_days": 5214, "days_push": 20, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1646, forks 47 (observed 2026-08-28T04:05:16.390921+00:00)

## What it is
Einhorn is a language-independent shared socket manager that runs and supervises multiple copies of a long-lived process, opening server sockets in the master process and passing them to workers via file descriptors. It supports seamless code reloading, dynamic reconfiguration, and control through an interactive shell (einhornsh).

## Use cases
- run multiple worker copies of a server sharing one listening socket
- zero-downtime code reload for a long-running process
- manage a language-agnostic daemon without rewriting it in a specific framework
- pass pre-bound socket file descriptors to worker processes via environment variables
- dynamically reconfigure a running master process over a command socket
- keep a service alive with automatic worker respawning

## When to choose
- you need shared-socket process supervision that works with any language or framework
- you want seamless reloads without dropping in-flight connections
- you prefer a lightweight gem over a full init system or container orchestrator

## When to avoid
- you already use systemd socket activation or a container orchestrator with equivalent features
- you need Windows support
- you want a full application server with built-in worker management for a specific framework

## Facets
- artifact type: cli-tool
- maturity: maintenance
- function: networking, concurrency, deployment, developer-tools
- domain: backend, infrastructure-as-code, microservices
- platform: cli, ruby
- tags: process-manager, shared-sockets, zero-downtime-reload, language-agnostic, worker-processes, graceful-restart, devops, linux, macos

## Member repositories
- contribsys/einhorn (main) score 66

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:16.390921+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:45:22.856731+00:00, confidence not recorded.
  - readme: https://github.com/contribsys/einhorn (fetched 2026-08-28T04:05:16.390921+00:00, sha 4f3212f180d0)
- Data as of 2026-08-30T08:39:29.467469+00:00.
