awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 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·15 views

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.

Star history

Star history chart for cloudflare/tableflipStar history chart for cloudflare/tableflip

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does cloudflare/tableflip do?

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.

What are the main features of cloudflare/tableflip?

The main features of cloudflare/tableflip are: Socket Handoffs, Zero-Downtime Socket Handovers, Process Lifecycle Managers, Graceful Shutdowns, Zero-Downtime Upgrades, Listener Handoffs, Descriptor Passing, File Descriptor Restoration.

What are some open-source alternatives to cloudflare/tableflip?

Open-source alternatives to cloudflare/tableflip include: 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…

Open-source alternatives to Tableflip

Similar open-source projects, ranked by how many features they share with Tableflip.
  • fvbock/endlessfvbock avatar

    fvbock/endless

    4,162View on 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
    View on GitHub↗4,162
  • facebookarchive/gracefacebookarchive avatar

    facebookarchive/grace

    4,882View on 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
    View on GitHub↗4,882
  • cloudflare/pingoracloudflare avatar

    cloudflare/pingora

    26,833View on 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
    View on GitHub↗26,833
  • amoffat/shamoffat avatar

    amoffat/sh

    7,231View on 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
    View on GitHub↗7,231
  • See all 30 alternatives to Tableflip→