Некоторое время назад заморочился работой с AMQP сервером (RabbitMQ). Стал искать готовые библиотеки, желательно на Qt, чтобы не тянуть лишнего. Как результат ничего подходящего не было найдено. Где-то Apache Runtime требовался, где-то чистые сокеты, а хотелось бы, чтобы работало в основном EventLoop (хотя тут конечно можно было бы и заморочиться упаковать все).
Но как результат открыл спецификацию и начал писать свою реализацию (отчасти for fun).
Код выложил сюда:
https://github.com/fuCtor/QAMQPНа готовое к использованию решение это ни капли не похоже, т.к. пока разбираюсь с самим протоколом (грабли встречались), благо Wireshark понимает его и подсказывает где побился пакет.
На сегодня реализовано:
- подключение
- класс Connection
- класс Channel
- класс Exchange
- класс Queue
- метод Basic.publish
- мутод Basic.consume
- мутод Basic.qos
Собственно хотелось бы услышать советы по тому как лучше реализовать обработку/формирование пакетов, т.к. сейчас такое ощущение, что очень избыточно по памяти и в целом выходит :/, особенно глядя на Cи реализацию.
PS код распространяю по MIT, нужно ли что-то помещать в каждый файл (заголовок с копирайтом и тп) и в каком виде?