Metadata-Version: 2.1
Name: stickney
Version: 0.7.3
Summary: Asynchronous websockets library
License: LGPL-3.0-or-later
Author: Lura Skye
Author-email: l@veriny.tf
Requires-Python: >=3.12
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: anyio (>=4.1.0,<5.0.0)
Requires-Dist: attrs (>=23.1.0)
Requires-Dist: wsproto (>=1.2.0)
Description-Content-Type: text/x-rst

Stickney
========

.. image:: https://img.shields.io/pypi/v/stickney
   :alt: PyPI - Version
   :target: https://pypi.org/project/stickney/

Stickney is an asynchronous websockets library for `AnyIO`_ and Python 3.11+. This is primarily
designed for Trio (as asyncio is a bastard evil terrible library that deadlocks constantly) usage.

Installation
------------

Stickney is available on PyPI.

.. code-block:: fish

    $ poetry add stickney@latest

Usage
-----

Create a new websocket with the ``open_ws_connection`` function:

.. code-block:: python

    async with open_ws_connection(url="wss://example.websocket.server/path?a=b") as ws:
        ...

You can send messages with the ``send_message`` function and receive messages with the
``receive_single_message`` function. You can also use ``close``, but the WS is closed automatically
when the context manager exits.

There's not really much else to it. See ``stickney/frames.py`` for the available message types.

Naming
------

Stickney is named after the `Stickney crater`_ on Phobos.

.. _AnyIO: https://anyio.readthedocs.io/en/stable/
.. _Stickney crater: https://en.wikipedia.org/wiki/Stickney_(crater)
