Skip to main content

An easy library to use to host an HTTP or a Websocket server with plenty of functionality

Project description

Very simple way to interact with any http and Websocket requests

from darius.server import server,routes
from darius.client_side import status

class Home(routes.View):
    def GET(self,request,**kwargs):
        return status.Http200().__call__("<h1>Home Page</h1>")

    def POST(self,request,**kwargs):
        return status.HttpBinary().__call__("dog.png",display_in_browser=True)

    def __init__(self,*args,**kwargs): 
        """Optional : Add your own custom HTTP method requests"""
        super(Home,self).__init__(*args,**kwargs)
        self.cases['CREATE'] = self.POST # Custom HTTP method

class Chat(routes.SocketView):
    def onConnect(self,client,**kwargs):
        key = kwargs.get("key")
        username = kwargs.get("headers")['Cookies']['username']
        self.accept(client,key)
        return {"username" : username,"id" : ord(username[0]) % 51} # Stored as state with client

    def onMessage(self,client,**kwargs):
        data = kwargs.get('data') # Message sent
        path_info = kwargs.get("path_info") # Containing information about clients
        send = kwargs.get('send_function') # Functions to send data

        # Send the message to every client
        for client in path_info['clients']:
            if(client['username'].startswith("a")) or client['id'] % 2 == 0:
                send(client,data)

    def onExit(self,client,**kwargs):
        print("Client exited!")

And then to actually list the paths and start the Server

WS_URLS = {
    r'/chat(\/)?' : Chat()
}

HTTP_URLS = {
    r'/home(\/)?' : Home()
}

server.Server(WS_URLS,HTTP_URLS,port=8000).start()

More can be found at Github

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

darius-1.0.0.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

darius-1.0.0-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

Details for the file darius-1.0.0.tar.gz.

File metadata

  • Download URL: darius-1.0.0.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for darius-1.0.0.tar.gz
Algorithm Hash digest
SHA256 350929fc394dd06cecd8deba317ac763511110be0b6d4bc6964a939a7c37954e
MD5 051c93dad2ccf02d8520112e7c4359e3
BLAKE2b-256 57dc4e824553330295ffd462540706eb776877f036ced64b7e55eab30a24f1c1

See more details on using hashes here.

File details

Details for the file darius-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: darius-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.6

File hashes

Hashes for darius-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8044a66391ca75b93e2bd69dec9d1d41abda8ea34ab849a860dd77857303f7e
MD5 ae3f195b7e621695e82331987a50d5b6
BLAKE2b-256 a3b1d25f3819f038f7f929b0402920f45fab5b430285d3777b1a21bc83a04cb1

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