Skip to main content

A python framework for creating a server which handles websockets for an existing API

Project description

build_status code_coverage

A python framework for creating a stateful server which handles websocket functionality for an existing HTTP only API.

Flow

  • A client opens a websocket connection with a High-templar instance.
  • The HT instance proxies the request to the API, which in turn handles authentication and provides a list of rooms.
  • The HT instance tells the client what rooms he is allowed to subscribe to.
  • The client subscribes to one or more rooms
  • When receiving a trigger from the API, the HT instance publishes the received data to the specified rooms.

architecture

Installation

pip install high-templar

Motivation

This project is created for handling websockets for a django instance. Django doesn’t support websockets out of the box. To add websocket support to Django, one can either monkey patch the Django WSGI with gevent, or use django-channels which requires a lot of configuration and needs you to manage its workers.

High-templar uses a similar approach to django-channels, but uses internal HTTP requests to communicate with the existing Django instance. High-templar keeps track of the active websocket connections, which allows the Django instance to remain stateless.

Origin

This repository is based on archon. Archon is a framework for creating full fledged websocket based CRUD APIs. High-templar is only half the framework of Archon, as it relies on an existing API and only provides pubsub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for high-templar, version 2.5.0
Filename, size File type Python version Upload date Hashes
Filename, size high_templar-2.5.0.tar.gz (7.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page