--- id: gripcontrol version: "4.4.0" license: MIT license_treatment: permissive maintenance: active --- # gripcontrol — GRIP library License: permissive · Maintenance: active · Downloads: 79.3K/mo ## 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 above — 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 pip install gripcontrol uv add gripcontrol 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: unspecified - Install friction: high - Maintenance: active - Downloads: 79.3K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags GRIP protocol implementation, real-time HTTP publishing, long polling with GRIP, WebSocket control messages, Fanout.io integration, HTTP stream publishing, GRIP proxy client, real-time-messaging, http-proxy, websocket [View on SkillFed](https://skillfed.io/packages/gripcontrol) · [View on PyPI](https://pypi.org/project/gripcontrol/)