Привет, Хабр!
Пару дней назад вышла новая версия интернет-комбайнаклиента LeechCraft — 0.5.0. На Хабре несколько лет назад эта программа уже появлялась.
Если вкратце, LeechCraft — модульное кроссплатформенное приложение «обо всем» на C++ и Qt, сочетающее в себе браузер, RSS-читалку, торрент-клиент, а теперь еще и IM. Модульность приложения означает не просто поддержку этих самих модулей, а то, что, во-первых, каждая функция, от самых крупных (браузер, читалка, ядро IM) до самых мелких (блокировка рекламы, поддержка стилей в IM, антиспам) реализованы отдельными слабо связанными модулями, так или иначе взаимодействующими друг с другом. Описание архитектурных решений и возникших там за время жизни проекта костылей тянет на отдельную статью, так что не будем углубляться в это, разве что, ответим сразу на один частый вопрос — да, сейчас все это дело крутится в одном процессе, но в перспективе (и это действительно планируется к следующему релизу) модули будут разнесены в различные процессы с сохранением всех (ну, или почти всех :)) плюшек от их взаимодействия друг с другом. Благодаря Qt'шным метаобъектам это вполне реализуемо.
Пару дней назад вышла новая версия интернет-
Если вкратце, LeechCraft — модульное кроссплатформенное приложение «обо всем» на C++ и Qt, сочетающее в себе браузер, RSS-читалку, торрент-клиент, а теперь еще и IM. Модульность приложения означает не просто поддержку этих самих модулей, а то, что, во-первых, каждая функция, от самых крупных (браузер, читалка, ядро IM) до самых мелких (блокировка рекламы, поддержка стилей в IM, антиспам) реализованы отдельными слабо связанными модулями, так или иначе взаимодействующими друг с другом. Описание архитектурных решений и возникших там за время жизни проекта костылей тянет на отдельную статью, так что не будем углубляться в это, разве что, ответим сразу на один частый вопрос — да, сейчас все это дело крутится в одном процессе, но в перспективе (и это действительно планируется к следующему релизу) модули будут разнесены в различные процессы с сохранением всех (ну, или почти всех :)) плюшек от их взаимодействия друг с другом. Благодаря Qt'шным метаобъектам это вполне реализуемо.