Skip to content

RoboTradeCode/aeron-python

Repository files navigation

Python

aeron-python

Build Python CPython Linux Code style: black

Неофициальное расширение для Python, позволяющее использовать протокол Aeron.

Установка

Предварительные требования

Перед установкой и использованием данного расширения, у вас должен быть установлен Aeron. Вы можете воспользоваться статьёй в Wiki для его установки.

Сборка и установка расширения

pip install --upgrade "aeron @ git+ssh://git@github.com/RoboTradeCode/aeron-python.git"

В примере выше используется подключение с помощью SSH. Подробнее о нём вы можете прочитать в руководстве "Connecting to GitHub with SSH"

Использование

Отправка сообщений

from aeron import Publisher

publisher = Publisher(
    channel="aeron:udp?endpoint=localhost:20121",  # str
    stream_id=1001,  # int
)

result = publisher.offer(message="Hello, World!")
publisher.close()

Получение сообщений

from aeron import Subscriber
from time import sleep


def handler(message: str) -> None:
    print(f"<<{message}>>")


subscriber = Subscriber(
    handler=handler,  # Callable[[str], None]
    channel="aeron:udp?endpoint=localhost:20121",  # str
    stream_id=1001,  # int
)

sleep(1)
fragments_read = subscriber.poll()
subscriber.close()

Убедитесь, что у вас запущен медиа-драйвер Aeron перед использованием классов расширения