Thesis Amqp 1.0.0

Многие заметили, что в проекте Thesis уже несколько месяцев подряд происходит какая-то движуха. Если вкратце, мы с Вадимом решили под этим именем выпустить набор современных асинхронных компонентов для PHP, а в будущем, вероятно, и свой фреймворк.

Основной фокус на ближайшее время — реализация недостающих в экосистеме неблокирующих драйверов для эффективного взаимодействия с инфраструктурой (в планах NATS, Kafka, gRPC, Cassandra, YDB).

Сегодня мы рады анонсировать стабильный, готовый к продакшну релиз пакета thesis/amqp: • под капотом файберы и AMPHP 3, так что клиент можно использовать как в асинхронных, так и синхронных рантаймах, • API для работы с подтверждениями в режиме publisher confirms, • API для работы с возвратами при отправке сообщений с флагом mandatory, • API итераторов для упрощённого чтения сообщений из очереди, • API публикации и получения сообщений эффективными батчами (меньше вызовов, потенциально умещаем несколько фреймов в 1 TCP-пакет), • встроенная поддержка RPC, • гибкая конфигурация и хорошо типизированный код.

`$client = new Client(Config::default());

$channel = $client->channel(); $channel->confirmSelect();

$confirmation = $channel->publishBatch([ new PublishMessage( message: new Message( body: 'Hello!', deliveryMode: DeliveryMode::Persistent, timestamp: new DateTimeImmutable(), ), exchange: 'x', routingKey: 'y', mandatory: true, ), // ... ]);

$result = $confirmation->await();

foreach ($result->unconfirmed as $unconfirmedMessage) { // ... }

foreach ($result->unrouted as $unroutedMessage) { // ... }

Мы сделали чат Thesis Community, где вы можете задавать вопросы, делиться идеями и предлагать улучшения.

У нас к вам две просьбы: ⭐️ поставить звезду thesis/amqp, 👩‍🎨 помочь с логотипом для проекта Thesis — лучший скетч (можно использовать ИИ) мы отдадим дизайнеру на отрисовку, а автору подарим слоника Пых.


В этом посте были ссылки, но мы их удалили по правилам Сетки`