gripcontrol
GRIP library
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 gripcontroluv
uv add gripcontrolpoetry
poetry add gripcontrolInstalling 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
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
django-gripIntegrates Django with GRIP-compatible proxies…
permissive · top 15,000 on PyPI
gripGrip is a command-line server that renders…
permissive · top 15,000 on PyPI
pubcontrolPublishes messages to multiple endpoints via…
permissive · top 15,000 on PyPI
websockets-proxyEnables WebSocket connections through HTTP and…
permissive · top 15,000 on PyPI
tornadoTornado is a Python web framework and…
permissive · top 1,000 on PyPI
websocketProvides WebSocket protocol support for…
permissive · top 15,000 on PyPI
simple-websocketProvides a straightforward WebSocket server and…
permissive · top 1,000 on PyPI
autobahnAutobahn provides WebSocket and WAMP (Web…
permissive · top 5,000 on PyPI
azure-messaging-webpubsubserviceManages WebSocket connections and real-time…
permissive · top 15,000 on PyPI
wsprotowsproto is a pure-Python WebSocket protocol…
permissive · top 1,000 on PyPI