LINUX.ORG.RU

Библиотека для создания демонов (SMTP-like)

 , ,


1

2

Знаете ли вы названия библиотек (на любом языке) для создания демонов (linux), обслуживающих клиентов через SMTP-подобный чат-протокол (command-based)?

P.S.: Подразумевается, что это не SMTP-протокол, а некий похожий на него.

P.P.S: Для агрессивных комментаторов уточню, что ничего похожего я сам в сети не нашёл ни на русском, ни на английском. Потому и пошёл сюда.



Последнее исправление: CourteousSleet (всего исправлений: 1)

Чому меня так бесит когда некоторые только зарегистрировавшись тупо копируют выданное им задание, не потрудившись хотя бы переформулировать его по человечески. Ни здрасте, ни «помогите я студент», не, зачем напрягаться. Просто копипасту метнул и все прям тапки потеряв бегут решать, помогать...

ТС, а сходи ка ты в гугль сам. Я знаю, но вот помогать не буду принципиально. Ты ленивый, я тоже.

Jameson ★★★★★
()
Ответ на: комментарий от alex0x08

охренеть как тебя с хачкелла то плющит. Но код по ссылке и правда проще некуда.

Другой вопрос, что основа smtp реализуется любым студентом за час под пиво.

hateyoufeel ★★★★★
()

автор, к сожалению, на неё забил, но это действительно самая крутая реализация корутин и матрёшкоподобных протоколов для си: https://sustrik.github.io/libdill/suffix_attach.html

ну а если не си, то какой-нибудь go, там всё что нужно из коробки. посмотри как написан какой-нибудь https://github.com/emersion/go-smtp , там не очень много кода.

anonymous
()
Ответ на: комментарий от PPP328

у такого форматирования есть практическое объяснение: так проще добавлять новые поля в структуру копированием за счет того, что не надо думать об том ставить запятую или нет если это последний элемент

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Я такой изврат в последний раз видел когда в тп оракла работал. Каким-то магическим способом разделитель в конце строки не мешает мне иметь структуры и enumы в С.

Ну и да, элементы перечисления на одной строке с префиксным и постфиксным словом - тут вообще какое-то комбо.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

главная проблема процедурного кода в том, что он на реальных задачах всегда вырождается в помойку овна, которая не предполагает переиспользования. Там потом появляются методы делающие одно и тоже с разными названиями, методы делающие сразу все что удобно(сочетающие множество назначений), паразитные структуры данных для перекладывания между методами, сотни и тысячи их!

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

Да ладно, С тоже по факту процедурный, но чот как-то это не мешает на нем для прода писать. Возможно проблема в прослойке между рулем и сиденьем.

Я про:

data Email = Email { 
   mail_client :: String,
   mail_from :: String,
   mail_to :: String,
   mail_read :: Bool,
   mail_data :: String
} deriving (Show, Eq)

Что, хуже читаться стало? А без подсветки предыдущий вариант вообще каша.

PPP328 ★★★★★
()
Ответ на: комментарий от PPP328

С тоже по факту процедурный

именно поэтому Страуструп начал костылять кресты, напейсать погремушку читающую из пайпы - не проблема, а вот всякие сотни-тысячи бизнес-сущностей с 100+ полями каждая могут просто не состояться, т.к. проект пилимый сотней ребят на аутсорсе развалится по дороге и утопнет в совокупном безкультурье

Что, хуже читаться стало?

есть типичная проблема: «добавил поле, но забыл запятую», особо часто создающая неудобства на динамической и рантайм типизации. Впрочем, если у вас большой проект собирается несколько минут это тоже будет часто раздражать даже если компилятор будет такое всегда ловить.

Syncro ★★★★★
()
Ответ на: комментарий от PPP328

если есть линтер, наверное, лучше не надо извращаться ставя запятую в начале строки. Такой код конечно выглядит слишком кавбойско для нервов нормальных людей.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

есть типичная проблема: «добавил поле, но забыл запятую»

Вот не поверите, за 11+ лет ни разу особо не беспокоила. Начиная с того, что IDE подсвечивает такие косяки и заканчивая тем, что при компиляции вы сразу получите ошибку. Аргумент что компиляция занимает 2+ часа не очень валиден - практически все системы сборки умеют в кеширование, не пересобирая не измененные модули.

Ну и да, у нас проект на 393к cloc. Компиляция не просто всего проекта, а во всех комбинациях артефактов во все поддерживаемые платформы (даже медлительным mingw) в сумме занимает около двух минут. На домашнем ноутбуке с i5-11.

PPP328 ★★★★★
()