Skip to main content

SDP: Subscription Data Protocol

Project description

SDP: Subscription Data Protocol

import asyncio
import websockets
from rethinkdb import r
from subsdata.sdp import sdp, method, sub, get_connection, is_logged, has_role

@method
@is_logged
async def add(user, a, b):
    return a + b

@method
@has_role('admin')
async def create(user):
    connection = await get_connection()
    await r.table('test').insert({'x': 0}).run(connection)

@method
async def increment(user, id, value):
    connection = await get_connection()
    await r.table('test').get(id).update({"x": r.row["x"]+value}).run(connection)

@sub
def x_less_than(user, max):
    return r.table('test').filter(lambda row: (row['x'] < max))

def main():    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(websockets.serve(sdp, '0.0.0.0', 8888))
    print("Real time server started at port 8888")
    loop.run_forever()
    loop.close()
#example of a docker-compose.yml
version: '3'
services:
  ws:
    build: .
    stdin_open: true
    tty: true
    ports:
    - "8888:8888"
    volumes:
    - ./:/usr/src/app
    environment:
    - RT=rdb
    - DEBUG=1
    - SECRET=secret
    command: python -m watchgod app.main 
  rdb:
    image: rethinkdb
    ports:
    - "8080:8080"
    - "28015:28015"
    volumes:
    - './data:/data'

Project details


Download files

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

Source Distribution

subsdata-0.1.2.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

subsdata-0.1.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file subsdata-0.1.2.tar.gz.

File metadata

  • Download URL: subsdata-0.1.2.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for subsdata-0.1.2.tar.gz
Algorithm Hash digest
SHA256 967aeaa0efd56f973932490a9f18593d0431d17809c879c20d1337cb7d9dd589
MD5 87079a064b28cae2a127c3c9b7ffe5f1
BLAKE2b-256 6ace7abb1a0c084c143fbb52f082a705fe9e1a450d10e175d44873dd98bb9977

See more details on using hashes here.

File details

Details for the file subsdata-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: subsdata-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7

File hashes

Hashes for subsdata-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 13824c9a8ebd5e75dcb43da940bfd7519828ac72d539f0a78f5c388b3e25c2c6
MD5 a97519f7bb22383f07517cda089540e6
BLAKE2b-256 e2f2b650176f4c518812b598f56c0a8f61bc895195e315805f6babe2673f4cae

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page