Я ищу клиентскую библиотеку IMAP или анализатор, который может поддерживать асинхронный ввод-вывод.Конечная цель заключается в том, чтобы я мог иметь выделенный поток (ы) для выполнения сокетного ввода-вывода (через цикл poll () или аналогичный) и мог отправлять данные ожидающим клиентам / анализаторам, когда они становятся доступными.Весь код / библиотеки, которые я видел до сих пор (java.mail, Python's imaplib, клиент Thunderbird C ++ IMAP, многие случайные в C, C ++), похоже, следуют традиционному подходу блокирования, один поток на сокет, которыйне будет работать для меня.
Мой идеальный клиент или библиотека будут вести себя так же, как https://github.com/ry/http-parser в том смысле, что поведение ввода-вывода не будет определяться битами IMAP.Вместо этого библиотека IMAP будет работать с буферами / строками, а вызывающая сторона будет управлять вводом / выводом.
Единственная возможность, которую я видел до сих пор, - это libcurl.Но я не уверен, что API будет работать, и хочу посмотреть на другие возможности, прежде чем идти слишком далеко по этому пути или изобретать свое собственное решение.
Я открыт для рассмотрения библиотек на любом языке программирования.