skillfed

gripcontrol

GRIP library

gripcontrol v4.4.0 79.3K downloads/30d#14,370 on PyPI32
Permissive license MIT Active released

What it is and what it does

GripControl is a Python library that implements the GRIP protocol, a specification for real-time message delivery through HTTP proxies. It acts as a client to GRIP-compatible proxy endpoints (such as Fanout.io or Pushpin), allowing you to publish HTTP responses, manage long-polling subscriptions, and send WebSocket control messages from your origin server. The library handles JWT authentication, supports multiple endpoint configurations, and can publish asynchronously with callbacks.

The package is designed for backends that need to push real-time updates to clients through a proxy layer. It abstracts away the details of GRIP message formatting and endpoint communication, letting you focus on subscription and publishing logic. It depends on PyJWT for token signing, pubcontrol for the underlying pub/control client, and six for Python 2/3 compatibility.

Use it for:

  • Publish real-time HTTP responses to clients connected through a GRIP proxy like Fanout.io.
  • Implement long-polling endpoints where clients subscribe to channels and receive updates via HTTP headers or response bodies.
  • Send WebSocket control messages to manage subscriptions and broadcast data to connected WebSocket clients through a GRIP proxy.
  • Integrate with Pushpin or Fanout.io to add real-time capabilities to existing HTTP services without modifying client code.
  • Build multi-endpoint publishing configurations for high-availability real-time messaging across multiple GRIP proxies.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Implements the GRIP (Generic Real-time Interoperability Protocol) specification for Python, enabling real-time HTTP response publishing, long polling, and WebSocket message control via GRIP proxy endpoints.

Yes, if you are building a backend that needs to push real-time updates through a GRIP proxy (Fanout.io, Pushpin, or compatible). The library is actively maintained, has no known vulnerabilities, and is permissively licensed. Install friction is moderate due to multiple dependencies, but they are all lightweight. Not relevant for applications that do not use GRIP proxies.

Install

gripcontrol on PyPI

pip

pip install gripcontrol

uv

uv add gripcontrol

poetry

poetry add gripcontrol

Installing gripcontrol

Before you install

High install friction: the package itself is small, but requires PyJWT, pubcontrol, and six as runtime dependencies. Optional ZMQ publishing requires pyzmq and tnetstring. Last release was 92 days ago and the repository is actively maintained with 32 stars.

License in practice

MIT license permits commercial and private use with minimal restrictions; you must retain the license notice in distributions.

Quickstart

pip install gripcontrol

from gripcontrol import GripPubControl
from base64 import b64decode

grippub = GripPubControl({
    'control_uri': 'https://api.fanout.io/realm/',
    'control_iss': 'issuer',
    'key': b64decode('...')
})
grippub.publish_http_response('channel', 'Test message')

Requires valid GRIP endpoint credentials (control_uri, issuer, and key); ZMQ publishing requires pyzmq and tnetstring to be installed separately.

Verify before relying

  • Whether Python 2.x support (six dependency suggests it) is still maintained or if Python 3 only is now the target.
  • Whether the package works with current versions of Fanout.io and Pushpin, or if there are known compatibility breaks.

Package facts

License MIT (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies 3 — PyJWT, pubcontrol, six
Maintenance actively maintained — 92 days since the last release
Last repo commit
First released
Downloads 79,259/month — #14,370 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: gripcontrol-4.4.0.tar.gz

License :: OSI Approved :: MIT LicenseTopic :: Utilities

Tags

GRIP protocol implementationreal-time HTTP publishinglong polling with GRIPWebSocket control messagesFanout.io integrationHTTP stream publishingGRIP proxy client
real-time-messaginghttp-proxywebsocket

More Utilities packages