Skip to main content

Lazy Socket

An attempt at creating a websocket based communication system that handles all the threading and async stuff in the background.

Installation

pip install lazy-socket

Usage

Server

The server can be created by subclassing LazyServer and implementing the process_message method. This is an async method that will be called whenever a message is received from a client. To respond to the client, use the send method of the client object passed to the method. A list of clients is available via the clients attribute of the server.

import asyncio
from lazy_socket.server import LazyServer


class Server(LazyServer):

    async def process_message(self, client, message):
        await client.send(f"Received: {message}")

if __name__ == "__main__":
    server = Server(name="TestServer", host="0.0.0.0", port=5000, version="1.0")

    try:
        server.start()
    except KeyboardInterrupt:
        print("Shutting down server...")

Client

The client can be created by instantiating the LazyClient class. The client has a queue attribute that can be used to receive messages from the server. The client must be started using the start method. Messages can be sent to the server using the send method.

A message lazy_client:connected:{uri} is sent to the queue when the client successfully connects to the server.

from lazy_socket.client import LazyClient

client = LazyClient()
client.start()

while True:
    if client.queue.empty():
        continue

    message = client.queue.get()
    if message.startswith("lazy_client:connected:"): 
        client.send("Hello, Lazy Server!")

Metadata

Release files for lazy-socket 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lazy-socket 0.0.7
File Size Uploaded
lazy_socket-0.0.7.tar.gz 5.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lazy-socket 0.0.7
File Interpreter ABI Platform
lazy_socket-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / lazy_socket-0.0.7.tar.gz

Download URL lazy_socket-0.0.7.tar.gz
Size 5.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ac81c0d3339dc09ab14169ff41880e6ae316c46fa070afae4ab4eec12d234ad8
BLAKE2b-256 checksum
How to use checksums
57e70e1a28a8754c58af5430b5004eec2eb6a559e7dcd52c9a57b4420edd8af2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / lazy_socket-0.0.7-py3-none-any.whl

Download URL lazy_socket-0.0.7-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b3f80f34d4375d79bd995a98a339690b82a21fddcc0922dc7d9562b553de363
BLAKE2b-256 checksum
How to use checksums
67b049c45d46bf2c732dd971b264c0745427da983d44efef615098a73d92b386
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page