awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
cloudflare avatar

cloudflare/tableflip

0
View on GitHub↗
3,155 stars·156 forks·Go·bsd-3-clause·2 vues

Tableflip

Tableflip is a zero-downtime restart library and system utility designed to transfer network sockets and open file descriptors between process instances. It serves as a process lifecycle manager that coordinates the handoff of TCP, UDP, and Unix domain sockets from a parent process to a child process to maintain active sessions during service upgrades.

The tool facilitates seamless restarts by utilizing file-based process ID tracking and system signals to trigger the spawning of new process instances. It ensures continuous service availability by handing over network listeners and using readiness signaling to notify parent processes when a new instance is prepared to take over.

The library also manages the transition phase through graceful shutdown coordination, which includes draining existing connections and synchronizing process exits. This is supported by low-level primitives for managing file descriptor transitions and signal-driven lifecycle events.

Features

  • Socket Handoffs - Passes open TCP or UDP listeners from a parent process to a child process to maintain continuous service availability.
  • Zero-Downtime Socket Handovers - Provides a mechanism to transfer listening TCP, UDP, and Unix domain sockets between processes to ensure continuous service availability during restarts.
  • Process Lifecycle Managers - Acts as a coordinator for graceful shutdowns and process synchronization using file-based tracking and system signals.
  • Graceful Shutdowns - Ensures clean termination of services by allowing in-flight requests to complete before shutting down.
  • Zero-Downtime Upgrades - Updates application code without dropping active network connections by transferring file descriptors between processes.
  • Listener Handoffs - Hands over TCP, UDP, and Unix domain socket listeners to a child process to maintain connectivity.
  • Descriptor Passing - Provides a mechanism for passing network sockets and open files between process instances to maintain active sessions.
  • File Descriptor Restoration - Allows the transfer of open file descriptors from a parent process to a child process to maintain active connections.
  • Process Handoff Synchronization - Coordinates process shutdown by waiting for the parent process to exit or acknowledge the resource transfer.
  • Process Lifecycle Management - Coordinates the handoff and graceful shutdown of system processes during version upgrades or configuration changes.
  • Signal-Driven Process Spawning - Triggers the creation of a new process instance and resource transfer upon receiving specific system signals.
  • Upgrade Signaling - Triggers a new process instance and transfer of file descriptors upon receiving a specific system signal.
  • Connection Draining - Implements a mechanism to stop accepting new connections while allowing existing requests to complete before process exit.
  • Socket Transfer Utilities - Provides a system for handing over Unix domain sockets and network listeners between processes during service upgrades.
  • Non-Blocking File Descriptor Transitions - Sets inherited file descriptors to non-blocking mode to prevent the child process from hanging during execution.
  • Process Shutdown Synchronization - Synchronizes process shutdown by waiting for a parent process to exit or responding to system signals.
  • Readiness Notifiers - Notifies a parent process that a new instance is ready to take over and clean up inherited descriptors.
  • PID-Based Process Tracking - Uses a persistent file to store the process ID for coordinating transitions between old and new versions.

Historique des stars

Graphique de l'historique des stars pour cloudflare/tableflipGraphique de l'historique des stars pour cloudflare/tableflip

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Tableflip

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Tableflip.
  • fvbock/endlessAvatar de fvbock

    fvbock/endless

    4,162Voir sur GitHub↗

    Endless is a zero-downtime server wrapper and process manager for Go HTTP servers. It replaces standard library listeners to coordinate process transitions and socket management, allowing binaries to be updated without dropping active network connections. The project enables zero-downtime restarts by forking a new child process to take over network sockets before the parent process shuts down. It manages secure traffic flow by wrapping servers with TLS encryption layers and supports coordination for both standard network ports and Unix sockets. The system handles the server lifecycle through

    Go
    Voir sur GitHub↗4,162
  • facebookarchive/graceAvatar de facebookarchive

    facebookarchive/grace

    4,882Voir sur GitHub↗

    Grace is a lifecycle controller and process manager for Go applications designed to coordinate server transitions and implement system-level socket activation. It functions as a tool for managing secure HTTP servers and their transport layer security configurations across multiple ports. The project enables zero-downtime deployments by handing over network sockets to successor processes, allowing existing requests to complete before an old process shuts down. It also provides socket activation management, which allows servers to start lazily only upon receiving connections through an external

    Go
    Voir sur GitHub↗4,882
  • cloudflare/pingoraAvatar de cloudflare

    cloudflare/pingora

    26,833Voir sur GitHub↗

    Pingora is a Rust-based framework for building high-performance network services, including HTTP reverse proxies, layer seven load balancers, and TLS termination proxies. It serves as an asynchronous network library designed to intercept and route HTTP, gRPC, and WebSocket traffic between clients and upstream backend servers. The project enables zero-downtime service updates by handing over listening sockets between processes during binary or configuration upgrades. It utilizes a programmable multi-phase pipeline to modify request and response bodies and headers, and it provides a pluggable T

    Rust
    Voir sur GitHub↗26,833
  • amoffat/shAvatar de amoffat

    amoffat/sh

    7,231Voir sur GitHub↗

    sh is a Python process management library that provides programmatic wrappers and interfaces for controlling Unix system commands and child process lifecycles. It functions as an asynchronous process wrapper, allowing shell commands and system programs to run within a non-blocking event loop. The library maps command-line arguments and standard input/output streams to native Python functions and objects. It includes a process lifecycle controller to manage signal groups, execution timeouts, and process permissions for spawned child processes. The project provides capabilities for executable

    Pythondevopspythonsubprocess
    Voir sur GitHub↗7,231
Voir les 30 alternatives à Tableflip→

Questions fréquentes

Que fait cloudflare/tableflip ?

Tableflip is a zero-downtime restart library and system utility designed to transfer network sockets and open file descriptors between process instances. It serves as a process lifecycle manager that coordinates the handoff of TCP, UDP, and Unix domain sockets from a parent process to a child process to maintain active sessions during service upgrades.

Quelles sont les fonctionnalités principales de cloudflare/tableflip ?

Les fonctionnalités principales de cloudflare/tableflip sont : Socket Handoffs, Zero-Downtime Socket Handovers, Process Lifecycle Managers, Graceful Shutdowns, Zero-Downtime Upgrades, Listener Handoffs, Descriptor Passing, File Descriptor Restoration.

Quelles sont les alternatives open-source à cloudflare/tableflip ?

Les alternatives open-source à cloudflare/tableflip incluent : fvbock/endless — Endless is a zero-downtime server wrapper and process manager for Go HTTP servers. It replaces standard library… facebookarchive/grace — Grace is a lifecycle controller and process manager for Go applications designed to coordinate server transitions and… cloudflare/pingora — Pingora is a Rust-based framework for building high-performance network services, including HTTP reverse proxies,… amoffat/sh — sh is a Python process management library that provides programmatic wrappers and interfaces for controlling Unix… puma/puma — Puma is a concurrent HTTP server for Ruby applications that implements the Rack interface. It operates as a clustered… qihoo360/atlas — Atlas is a MySQL database proxy and middleware system designed to manage traffic between clients and database…