Есть ли способ интегрировать Boost :: ASIO с сетевым стеком пользователя, таким как F-stack или DPDK?
Я ищу способ получения преимуществ производительности стеков пользовательского пространства, но поддерживаю API для Boost :: ASIO, чтобы можно было использовать все библиотеки и т. Д., Которые написаны с ним.
По сути, если такой оболочки уже не существует, вам придется реализовать низкоуровневые интерфейсы и сокеты, т.е. те, которые абстрагируют детали TCP и UDP с помощью сокетов boost :: asio (в основном внутри IO-сервиса).
Я не знаю библиотеку, которую ты хочешь использовать. Таким образом, это может быть довольно трудоемким.
Посмотрите на сокет boost :: asio basic_datagram, распознаватель, конечную точку и оказание услуг. Вам нужно будет перевести хотя бы важную часть (производительность), например, отправить и получить. Вы можете получить доступ к собственному дескриптору сокета через boost, если у вашей библиотеки есть интерфейс для отправки и получения через этот дескриптор, вам может потребоваться переопределить все функции отправки и получения, соответственно. просто обрабатывать отправку / получение извне.
Других решений пока нет …