RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 17.10.17 15:08
Оценка: 157 (20) +2
RESTinio -- это header-only, кросс-платформенный инструмент для встраивания HTTP/Websocket в С++ приложение. Он использует standalone версию ASIO Главная задача -- упростить асинхронную обработку запросов. Чтобы, грубо говоря, обработчик спокойно мог потратить 15 секунд на формирование ответа, но это бы не влияло на параллельные запросы.

Библиотека распространяется под BSD-3-CLAUSE лицензией. Мы говорим, что она находится в состоянии beta-версии, т.к. не уверены, что ее API в достаточной степени стабилизировался и не претерпит ломающих изменений в будущем. Но сама реализация достаточно стабильна (например, на RESTinio было сделано одно из решений для Mail.ru-шного HighloadCup-а, которое заняло 41-е место в финале конкурса).

Вот как будет выглядеть простейший http-сервер, который отвечает на все запросы hello-world сообщением:

#include <iostream>
#include <restinio/all.hpp>

int main()
{
  restinio::run(
    restinio::on_this_thread() // Run server on this thread.
      .port(8080)
      .address("localhost")
      .request_handler([](auto req) {
        return req->create_response().set_body("Hello, World!").done();
      }));

  return 0;
}


В данном примере обработчик запросов предельно прост, но, конечно, RESTinio дает доступ к о всем параметрам запроса, что позволяет делать более сложные обработчики.

Возможности:

Репозиторий проекта: https://bitbucket.org/sobjectizerteam/restinio-0.3

Взгляд со стороны, пожелания, предложения и конструктивная критика приветствуются!
Отредактировано 17.10.2017 18:51 so5team . Предыдущая версия .
Re[6]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: antropolog  
Дата: 18.10.17 09:42
Оценка: 1 (1) +10
Здравствуйте, MTD, Вы писали:

MTD>Я уже достаточно конструктивно высказался, можно послушать, а можно обидеться и жаловаться, что пользователь дурак, не оценил души порывов.


Братишка, со стороны выглядит что именно ты обиделся (непонятно на что, кстати) и жалуешься. Начиная прямо с первого твоего сообщения в этой теме. И нет, конструктива от тебя ещё не было.
Re[8]: RESTinio 0.3: header-only C++14 библиотека с HTTP/We
От: antropolog  
Дата: 18.10.17 10:12
Оценка: +6
Здравствуйте, MTD, Вы писали:

MTD>Конструктив от меня был с самого первого сообщения — я задал конкретные вопросы, которые задает себе любой разработчик при выборе инструмента. Ответы дали мне понять, что у авторов нет опыта разработки и поддержки серверов которые бы обслуживали самых разных клиентов 7 * 24 * 365. Я ошибаюсь?


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

кросс-платформенный инструмент для встраивания HTTP/Websocket в С++ приложение. Он использует standalone версию ASIO Главная задача -- упростить асинхронную обработку запросов


т.е. это альтернатива restbed, cpprestsdk, pion, cppnetlib и ещё доброй дюжины embeddable http-серверов для C++. К чему здесь вопрос о запредельном перформансе и возможности работать 24x7 ( для нагруженных серверов это вообще вопрос к инфраструктуре, а не к коду )?

MTD>Ну покажите мне ссылку, где автор написал, что такой опыт у него есть. Тебя бы это не насторожило?


меня бы это не насторожило, потому что исходя из позиционирования библиотеки и существующих альтернатив меня бы интересовали совершенно другие вопросы, нежели сколько библиотека выдаёт rps по сравнению с голым epoll

MTD>Далее, предложил идею для позиционирования — вылизанный и стабильный nginx принимает соединения, расшифровывает https, а на их фреймворке написан сервер с асинхронными обработчиками и удобным роутингом, на который nginx перенаправляет трафик — вполне себе неплохое вырисовывается решение. Это не конкретика? Ну ок.


идеи о позиционировании не нужны, т.к. позиционирование уже есть и явно озвучено топикстартером в первых же двух предложенях.
Отредактировано 18.10.2017 10:13 antropolog . Предыдущая версия .
Re[7]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 09:57
Оценка: -5
Здравствуйте, antropolog, Вы писали:

A>Братишка, со стороны выглядит что именно ты обиделся (непонятно на что, кстати) и жалуешься. Начиная прямо с первого твоего сообщения в этой теме.


Чтобы не съезжать на пустое, допустим я обиделся, ок. Переходим к сути.

A>И нет, конструктива от тебя ещё не было.


Конструктив от меня был с самого первого сообщения — я задал конкретные вопросы, которые задает себе любой разработчик при выборе инструмента. Ответы дали мне понять, что у авторов нет опыта разработки и поддержки серверов которые бы обслуживали самых разных клиентов 7 * 24 * 365. Я ошибаюсь? Ну покажите мне ссылку, где автор написал, что такой опыт у него есть. Тебя бы это не насторожило? Далее, предложил идею для позиционирования — вылизанный и стабильный nginx принимает соединения, расшифровывает https, а на их фреймворке написан сервер с асинхронными обработчиками и удобным роутингом, на который nginx перенаправляет трафик — вполне себе неплохое вырисовывается решение. Это не конкретика? Ну ок.
Re[8]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 18.10.17 10:08
Оценка: +4
Здравствуйте, MTD, Вы писали:

MTD>Конструктив от меня был с самого первого сообщения — я задал конкретные вопросы, которые задает себе любой разработчик при выборе инструмента. Ответы дали мне понять, что у авторов нет опыта разработки и поддержки серверов которые бы обслуживали самых разных клиентов 7 * 24 * 365. Я ошибаюсь? Ну покажите мне ссылку, где автор написал, что такой опыт у него есть. Тебя бы это не насторожило? Далее, предложил идею для позиционирования — вылизанный и стабильный nginx принимает соединения, расшифровывает https, а на их фреймворке написан сервер с асинхронными обработчиками и удобным роутингом, на который nginx перенаправляет трафик — вполне себе неплохое вырисовывается решение. Это не конкретика? Ну ок.


Как раз авторы на РСДН давно и всем известны, их опыт тоже.
Никаких же конкретных вещей про С++ библиотеку, выполняющую указанные функции, тобой сказано не было.
Re[10]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 14:08
Оценка: +4
Здравствуйте, MTD, Вы писали:

MTD>Допускаю, переубедите меня.


Нет смысла. Вот библиотека, с тестами, с примерами, с документацией. Под BSD-лицензией. Нравится -- берете и используете. Не нравится -- ходите по рынку, выбираете что-то другое.

Вы задали вопросы. На те, которые были по делу, вам ответили. Есть еще вопросы по делу -- спрашивайте. Есть что сказать конструктивное -- говорите. А нет, так нет.

MTD>Ответ человека который имеет опыт выглядит так: пишем сервера более 15 лет, например: [идет список со ссылками, коротким описанием, перечислением архитектурных и технических решений, нагрузкой и т.д.]


Пардон май френч, а вы вообще кто? С какого бодуна вам здесь кто-то должен выкладывать подробное резюме и почему вообще кто-то должен на вас тратить свое время?

Никто из нас не работал ни в Google, ни в Facebook-е, ни в Yandex-е. Работали в областях АСУ ТП, телекома и платежных сервисов. Разработанные нами и на наших инструментах компоненты годами работают в режиме 24x7. Например, в декабре 2016-го через SMS-агрегаторы Интервэйла прошел миллиард SMS, половина, т.е. 500 миллионов из них -- через компоненты, которые написаны теми самыми людьми, которые сделали RESTinio. Ну а уж сколько платежных транзакций прошло через шлюз интеграции одного из крупнейших банков с мобильными операторами с 2003-го года по сей момент... И, опять же, в режиме 24x7.

Вы можете достать линейку, все тщательно замерить и заявить, что этого опыта для вас недостаточно. Вот и отлично. Походите по рынку, найдите себе инструмент от более именитых разработчиков.

Ну и по поводу инсинуаций на счет возможной грубости и неадекватности в отношении тех, кто запостит баг-репорты. Найдите баг в RESTinio, придите с баг-репортом, сами увидите.
Re: RESTinio 0.4: header-only C++14 библиотека с HTTP/Websock
От: so5team https://stiffstream.com
Дата: 27.12.17 14:20
Оценка: 6 (2) +1
Завершены работы над версией 0.4. В ней мы доделали многое из того, что хотели иметь в RESTinio-1.0, и теперь можно рассматривать RESTinio-0.4 как стабильную бета версию. Полный список изменений можно увидеть тут.

Репозиторий проекта: https://bitbucket.org/sobjectizerteam/restinio-0.4

Документация: https://stiffstream.com/en/docs/restinio/0.4
Re[7]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 10:05
Оценка: -1 :))
Здравствуйте, so5team, Вы писали:

S>Так чего же вам не хватает в продакшене? Вы же сказали, что не хватает, так чего именно?


На многие ответы можно получить ответ, если вежливо интересоваться, а не заявлять, что конкретики 0. Да, даже если и ноль, с людьми надо уметь работать, а если тебе это не приятно и не хочется — ты занялся не тем. Конкретно мне лень сейчас тебе все расписывать — это труд, а тут придется работать даже не за спасибо, а за слабо.

MTD>>Где они? Как называются?


S>В документации об этом написано.


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

S>Ну т.е. список, может быть и существует у вас в голове, но озвучить вы его не можете.


Могу, но не хочу, попросил бы вежливо — получил бы вежливый ответ.

S>ok.jpg


Вы все еще не созрели использовать его фреймворк? Напрасно, смотрите как автор мастерски убеждает.

S>Это вам так показалось. Пока пользы от ваших высказываний ноль целых ноль десятых.


Казалось бы за столько лет человек мог бы задаться вопросом, почему его велосипеды никто не использует, но нет, автор твердо убежден — пользователи не те, с ним же все ок.
Re[4]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 18.10.17 21:04
Оценка: 47 (2)
Здравствуйте, c-smile, Вы писали:

CS>Спасибо, и ещё с autobahn тестировали?


Да, тестировали. При запуске тестов использовался пример websocket_detailed. Из реализованных все кейсы были пройдены (на момент тестирования при прохождении разделов 12.* и 13.* в качестве результата было "Unimplemented").
Re: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: pkl  
Дата: 19.10.17 15:35
Оценка: 3 (1) +1
https://github.com/pavelkolodin/fir

Входной HTTP/1.1 протокол парсится с минимальным кол-вом копирований данных.
Распарсенный HTTP представляет собой просто набор указателей на разные места во входном буфере, куда данные залетели изначально.
Нет привязки к boost или другой сетевой библиотеке, на нижнем уровне лежит класс TCP сервера, реализованный на epoll, но можно подменить что угодно своё с похожим API.
Написано по мотивам внутренностей nginx. Минимум new/delete, всё переиспользуется.
В протоколе WebSocket zero-copy соблюдено плохо, можно оптимизировать.

Используется в http://fintank.ru
Отредактировано 19.10.2017 15:38 pkl . Предыдущая версия .
Re[9]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 10:28
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>Простите великодушно.

S>Мы приносим извинения за резкий тон в своих предыдущих высказываниях

Ерничать не надо — не красиво.

S>>>Это вам так показалось. Пока пользы от ваших высказываний ноль целых ноль десятых.


S>Вы делаете ошибку предполагая, что у RESTinio всего один автор и предполагая, что общаетесь именно с тем человеком, которого подозреваете в авторстве.


Я такой ошибки не делаю:

Ответы дали мне понять, что у авторов нет опыта разработки и поддержки серверов которые бы обслуживали самых разных клиентов 7 * 24 * 365. Я ошибаюсь?


Но идеолог у всего этого один — если ты это не он, я бы на его месте с тобой не работал, а если это он — еще один велосипед в его копилку. Причем я его блог давно почитываю: CMake плохой, Mxx хороший и т.д., почему пользователи выбирают "плохое" вместо его "хорошего" ему очевидно. Можешь не верить, но я всерьез хотел в одном проекте использовать SObjectizer, прочел все статьи на хабре, написал хелло ворлд, но использовать не стал — я плохой, библиотека хорошая.
Re[11]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 14:57
Оценка: -1 :)
Здравствуйте, so5team, Вы писали:

S>Нет смысла. Вот библиотека, с тестами, с примерами, с документацией. Под BSD-лицензией. Нравится -- берете и используете.


Так ты корову не продашь.

S>Не нравится -- ходите по рынку, выбираете что-то другое.


Да, продавать ты не хочешь и не умеешь.

S>Вы задали вопросы. На те, которые были по делу, вам ответили. Есть еще вопросы по делу -- спрашивайте. Есть что сказать конструктивное -- говорите. А нет, так нет.


На самом деле конструктивным был первый ответ, дальше пошли обвинения, что я вопросы неудобные задаю, а дальше вы скатились к оскорблениям — приятно видеть такую работу над имиджем.

MTD>>Ответ человека который имеет опыт выглядит так: пишем сервера более 15 лет, например: [идет список со ссылками, коротким описанием, перечислением архитектурных и технических решений, нагрузкой и т.д.]


S>Пардон май френч, а вы вообще кто? С какого бодуна вам здесь кто-то должен выкладывать подробное резюме и почему вообще кто-то должен на вас тратить свое время?


Я может быть и никто — это вообще не важно, но если вы хотите чтобы ваш фреймворк использовали, то должны убедить людей, что вам можно доверять. Например, что у вас достаточно опыта, чтобы реализовать все правильно.

S>Никто из нас не работал ни в Google, ни в Facebook-е, ни в Yandex-е.


Это не страшно.

S>Работали в областях АСУ ТП, телекома и платежных сервисов. Разработанные нами и на наших инструментах компоненты годами работают в режиме 24x7. Например, в декабре 2016-го через SMS-агрегаторы Интервэйла прошел миллиард SMS, половина, т.е. 500 миллионов из них -- через компоненты, которые написаны теми самыми людьми, которые сделали RESTinio. Ну а уж сколько платежных транзакций прошло через шлюз интеграции одного из крупнейших банков с мобильными операторами с 2003-го года по сей момент... И, опять же, в режиме 24x7.


Это хорошо, что вы где-то работали, а что конкретно вы делали? Поскольку мы обсуждаем http-сервер, то в первую очередь интересует именно это.

S>Вы можете достать линейку, все тщательно замерить и заявить, что этого опыта для вас недостаточно. Вот и отлично. Походите по рынку, найдите себе инструмент от более именитых разработчиков.


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

S>Ну и по поводу инсинуаций на счет возможной грубости и неадекватности в отношении тех, кто запостит баг-репорты. Найдите баг в RESTinio, придите с баг-репортом, сами увидите.


Увольте, бесплатно (да и за деньги) тестировать ноунейм библиотеки от ноунейм разработчиков нет ни времени, ни желания.
Re[11]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 15:00
Оценка: -1 :)
Здравствуйте, so5team, Вы писали:

S>Нет


Сейчас ответ не вам, а просто забавное наблюдение. Троица как за вами ходит, в течении получаса на ваш ответ мне, дружно пришли и выразили одобрямс — внимательно наблюдают за темой. Один наверное с вами работает? Заискивает? А остальные?
Re[12]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 15:30
Оценка: +2
Здравствуйте, MTD, Вы писали:

MTD>В качестве бесплатного тестировщика работать глупо, особенно когда разработчики такие нервные и неготовые к конструктивному диалогу.

MTD>Увольте, бесплатно (да и за деньги) тестировать ноунейм библиотеки от ноунейм разработчиков нет ни времени, ни желания.

Простите, но вас никто даже в качестве бета-тестировщика не рассматривает. Ноунейм, как он есть. Непонятная квалификация. Неспособность задавать вопросы. Неспособность воспринимать ответы. Настолько тонкая душевная организация, что оскорбления вам видятся даже там, где вам просто указывают на отсутствие конструктива. Вы прям наглядная демонстрация актуальности принципа "Никогда не работай с мудаками".

Ну а то, что вы в соседнем ответе
Автор: MTD
Дата: 18.10.17
позволили высказать в адрес не имеющих никакого отношения к нашей команде форумчан, это уже за гранью.
Re[29]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 09:05
Оценка: -1 :)
Здравствуйте, so5team, Вы писали:

S>Ну, если оппонент на всех производит одинаковое впечатление... Если оппонент тупит как дебил, а ведет себя как мудак, то что уж поделать.


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

MTD>>А что там сложного?


S>Хотя, действительно, что там сложного.


Снова консенсус. Если у тебя получается сложно, значит скорее всего велосипедишь ты не так.

S>

Каково ваше позиционирование фреймворка? Какова его ниша?


S>И хотя вам все несколько раз объяснили, вы все равно демонстрируете непонимание.


Где непонимание? Есть понимание — ты тешишь свое самолюбие и мечтаешь (уже сколько лет) завоевать мир, получить призвание. Миру как обычно пофиг.

S>Если это не дебилизм, то что, троллинг?


Да хз, что там с твоей стороны. Лучше был бы троллинг, а то совсем грустно.
Re[30]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 09:58
Оценка: +2
Здравствуйте, MTD, Вы писали:

MTD>Был бы ты взрослым человеком, обладающим развитым интеллектом (каким ты себе кажешься), то нашел бы способ не начинать цирк, а напротив грамотно и аргументированно донести свою точку зрения и заслужить уважение. А так вся тема — раскрытие детских комплексов хамоватого разработчика, который несет людям свои велосипеды и требует признания, но всем отчего-то пофиг.


Попытки конструктивного общения с вами предпринимались неоднократно (№1
Автор: so5team
Дата: 18.10.17
, №2
Автор: so5team
Дата: 18.10.17
, №3
Автор: so5team
Дата: 18.10.17
, №4
Автор: so5team
Дата: 18.10.17
, №5
Автор: so5team
Дата: 18.10.17
) и не только нами (№1
Автор: antropolog
Дата: 18.10.17
, №2
Автор: antropolog
Дата: 18.10.17
). Оно продолжалось ровно до тех пор, пока не стало понятно, что вы способны лишь надувать щеки и делать мутные намеки на якобы имеющиеся у вас сакральные знания, а так же истерить изображая из себя оскорбленную невинность. После этого общение с вами перешло в специальный режим, преследующий две основные цели:

a) удерживать тему на плаву, ибо черного PR-а не бывает;
b) наглядно проиллюстрировать потенциальным пользователям ваш же тезис о том, что их ждет, если они придут к нам с баг-репортом. Пусть посмотрят и решат, хотят ли они иметь дело с людьми, которые общаются с вами вот таким вот образом.

MTD>Если у тебя получается сложно, значит скорее всего велосипедишь ты не так.


Если вы чего-то не понимаете, то это вовсе не следствие того, что мы сделали что-то сложно.

MTD>Есть понимание — ты тешишь свое самолюбие и мечтаешь (уже сколько лет) завоевать мир, получить призвание. Миру как обычно пофиг.


Если вы так понимаете ситуацию с разработками нашей команды, то во-первых, вы точно не правы и, во-вторых, у вас какой-то запущенный случай юношеского максимализма. Что еще раз подтверждает диагноз: "малолетний дебил" (с) (На всякий случай, если вы не в курсе, откуда пошел этот мем: "малолетний" в нем означает вовсе не биологический возраст).
Re[37]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 11:44
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>Это понятно. Вы этим здесь очень давно занимаетесь. Пользы для RESTinio от этого сколько?


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

S>А покажите пальцем, где именно у кого-то что-то полыхнуло? Ссылку на сообщение, например.


Началось все здесь:
Автор: so5team
Дата: 18.10.17


Вместо того, чтобы вежливо начать задавать вопросы и получать ответы, обиделся как дитя:

Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?

Re: RESTinio 0.7.0
От: so5team https://stiffstream.com
Дата: 13.11.23 13:18
Оценка: +2
Библиотека RESTinio обновилась до версии 0.7.0.

Для тех, кто про RESTinio слышит впервые: это небольшая C++ библиотека для встраивания в C++ приложения HTTP(s)/WebSocket сервера (только сервера, HTTP-клиента в RESTinio нет). Распространяется под лицензией BSD-3-CLAUSE.

Сама библиотека header-only вследствие активного использования шаблонов (в том числе трех- и более этажных), но зависит от библиотек, которые нуждаются в компиляции. В качестве зависимостей используются fmtlib, nodejs/llhttp, expected-lite и Asio (как standalone, так и Boost.Asio).

Кратко про изменения в версии 0.7.0:

* теперь нужен C++17;
* теперь используется nodejs/llhttp вместо оставшегося без поддержки nodejs/http-parser;
* переделаны CMake-скрипты. Теперь для конфигурирования используется новый набор CMake-овских опций/переменных.
* добавлена возможность выстраивать цепочки асинхронных обработчиков. В версии 0.6.13 были добавлены цепочки синхронных обработчиков, теперь еще и асинхронные поддерживаются. Цепочки обработчиков -- это что-то вроде middleware из EpressJS;
* выброшены некоторые классы/методы/функции, которые ранее были помечены как deprecated.

Более подробно изменения описаны в этой статье на Хабре.
Re[17]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: night beast СССР  
Дата: 18.10.17 17:24
Оценка: 12 (1)
Здравствуйте, so5team, Вы писали:

S>>>И здесь: http://rsdn.org/forum/cpp.applied/6936991.1
Автор: so5team
Дата: 18.10.17


MTD>>Ответ есть: "В документации об этом написано." Формально вроде ответили, а фактически послали.


S>Фактически там была дана ссылка на раздел, в котором все описано. Если вы не можете читать документацию... Даже не так: если вы не желаете читать документацию на библиотеку, в обсуждение которой влезли, то не стоит рассчитывать, что вас вообще кто-то хоть как-то будет воспринимать.


у вас там, кстати, с версткой что-то.
На работе глянул, нормально. Дома такая хрень:


Разрешение 1280:1024.
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: m2l  
Дата: 19.10.17 09:13
Оценка: 12 (1)
Здравствуйте, so5team, Вы писали:

S>Взгляд со стороны, пожелания, предложения и конструктивная критика приветствуются!


Вы там хоть с MTD и немного подискутировали, но идея сравнения с аналогами здравая. Добавьте в Overview сравнение с 5-7 ближайшими аналогами.
Re[3]: fir: другая HTTP/WebSocket либа с zero-copy внутри бе
От: pkl  
Дата: 20.10.17 11:18
Оценка: 10 (1)
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, pkl, Вы писали:


pkl>>Входной HTTP/1.1 протокол парсится с минимальным кол-вом копирований данных.

pkl>>Распарсенный HTTP представляет собой просто набор указателей на разные места во входном буфере, куда данные залетели изначально.
pkl>>Нет привязки к boost или другой сетевой библиотеке, на нижнем уровне лежит класс TCP сервера, реализованный на epoll, но можно подменить что угодно своё с похожим API.
pkl>>Написано по мотивам внутренностей nginx. Минимум new/delete, всё переиспользуется.

MTD>Крайне интересно звучит. Какие планы по развитию или чисто just for fun? Обработчики запросов где и как обрабатываются?

Just For Fun конечно, я есть частное лицо, а не организация. Планы могут быть когда ты можешь их гарантировать, а что может гарантировать частное лицо без договора.
Примерные планы — юзать как основное сетевое двигло в своих fun-проектах, дорабатывать по мере надобности, рефакторить как накатит волна.

TCPServerEpoll — это шаблонный класс, куда нужно передать класс фабрики ресурсов. Когда приходит TCP-коннект, то TCPServerEpoll лезет в фабрику ресурсов и говорит "дай объект коннекта для типа 70", где 70 — это то что указал юзер при открытии порта на прослушивание. Объект может быть new или взят из списка свободных (кеш).

Фабрика понимает, что 70 — это HTTP коннект, например. Там их всего несколько типов из коробки, есть например примитивный "bin" протокол для общения демонов между собой. Все коннекты наследуют класс Connection, методы которого eventRead(), eventWrite(), eventClose() и дёргает TCPServerEpoll при соответствующих событиях.

Далее внутри каждого конкретного дочернего типа Connection есть свои eventRead() и т.п. Но общее одно — сам читай из дескриптора данные куда тебе надо.

Преследуя политику минимального копирования данных, TCPServerEpoll не пытается сам читать данные во временные буферы, которые потом отдаёт абстрактному коннекшну. Сделано как в nginx: пускай коннекшн сам решает надо ли ему вообще читать эти данные и пускай сам читает СРАЗУ в тот буфер где они будут нужны и столько сколько нужно, а не занимается копированием из нашего буфера. Поэтому в ConnectionHTTP например, в зависимости от состояния (что мы сейчас пытаемся прочитать — хидеры или BODY) данные читаются в разные буферы и т.п. Вот стартовая процедура чтения данных в ConnectionHTTP https://github.com/pavelkolodin/fir/blob/master/net/connection_http.h#L285 — она читает и разбирает headers.

Есть понятие Responder. Это тип "отвечальщик" — там "хендлеры" и живут ( пример Responder ) Responder передаётся как шаблонный в фабрику. Когда ConnectionHTTP допринимал запрос и понял что запрос нормальный, он говорит фабрике — дай Responder, я буду отвечать! Далее делается что-то типа responder->dataHTTP(this) и ответ отправляется обратно. У Responder должны быть методы dataHTTP, dataWS, dataBin, closeHTTP, closeWS, closeBin иначе не скомпилицца. Это и есть хендлеры. В них тебе дают голые headers, cookies, body и делай с ними что хочешь. Есть там какой-то ответный буфер, туда можно запилить ответ и вернуться, а ConnectionHTTP сам отправит ответ.

ConnectionHTTP на конечных автоматах — данные могут приходить любыми кусочками.

Некоторые штуки не реализованы — например нет поддержки gzip, нет HTTP Range_requests, нет ещё какой-то важной фигни. Зато из коробки есть miltipart/form-data -- можно запощенные HTTP-формочки парсить.

ConnectionWebSocket реализован тоже на конечных автоматах, работает стабильно. В нём есть пара лишних копирований данных (из-за непоняток с вопросами владения буферами). Также в нём отсутствует пара каких-то второстепенных моментов, типа отработки PING\PONG, хотя может и запилено — не помню. В продакшене на http://fintank.ru этот ConnectionWebSocket вроде стабильно работает часами, но я бы над ним ещё поработал.

В целом fir надо немного отрефакторить, там часть написана когда я ещё малолетним дебилом был — под c++14 надо причёсывать, про кеш CPU подумать, lock-free внедрить, мьютексов дурацких повыкидывать если есть...
Отредактировано 20.10.2017 11:26 pkl . Предыдущая версия . Еще …
Отредактировано 20.10.2017 11:25 pkl . Предыдущая версия .
Re[6]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 09:38
Оценка: 9 (1)
Здравствуйте, MTD, Вы писали:

MTD>>>Это не совсем то, что требуется в продакшене.


S>>И что же вам требуется в продакшене? И в каком именно продакшене?


MTD>Поэтому я и говорю — не надо велосипедить там, где люди годами опыт нарабатывают — с наскока получится хуже.


Так чего же вам не хватает в продакшене? Вы же сказали, что не хватает, так чего именно?

MTD>>>Во-первых, не понятно откуда такие константы,


S>>Из параметров, задаваемых пользователем.


MTD>Где они? Как называются?


В документации об этом написано.

MTD>>>И это только одна из множества потенциальных проблем,


S>>Огласите весь список, пожалуйста.


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


Ну т.е. список, может быть и существует у вас в голове, но озвучить вы его не можете. ok.jpg

S>>Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?


MTD>Я уже достаточно конструктивно высказался


Это вам так показалось. Пока пользы от ваших высказываний ноль целых ноль десятых.
Re[3]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: _NN_ www.nemerleweb.com
Дата: 19.10.17 19:57
Оценка: 6 (1)
Здравствуйте, so5team, Вы писали:

Уже кто-то работает над epoll для Windows: https://github.com/piscisaureus/wepoll
Правда тут пишут что это не так легко сделать.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 19.10.17 06:46
Оценка: 4 (1)
S>Библиотека распространяется под BSD-3-CLAUSE лицензией. Мы говорим, что она находится в состоянии beta-версии, т.к. не уверены, что ее API в достаточной степени стабилизировался и не претерпит ломающих изменений в будущем. Но сама реализация достаточно стабильна (например, на RESTinio было сделано одно из решений для Mail.ru-шного HighloadCup-а, которое заняло 41-е место в финале конкурса).

Вот само решение для HighloadCup-а. В принципе, это практически то самое решение, которое было использовано в конкурсе. За двумя небольшими правками:

По поводу самого решения. Использовался самый тривиальный подход с хранением всей информации в памяти. При загрузке json-файлов использовался честный парсинг, данные в ОП хранились уже в C++ном представлении. Результирующие json-оны генерировались на лету при формировании ответа. Поскольку основные затраты были связаны с Asio, то возня с предварительной генерацией ответных json-ов никакого выигрыша не давала.

Изначально для роутинга запросов использовался expressjs-like роутер из RESTinio, но быстро выяснилось, что его реализация на базе std::regex изрядно тормозит и пришлось сделать ручной разбор query_string и ручное определение типа запроса.

Еще для этого конкурса использовался сервер без таймеров:
using traits_t =
        restinio::traits_t<
            restinio::null_timer_factory_t,
            restinio::null_logger_t,
            root_req_handler_t >;

using server_t = restinio::http_server_t< traits_t >;

С таймерами на базе Asio результат был бы хуже, т.к. в настоящее время таймеры имеют заметные накладные расходы, в следующей версии RESTinio мы с этим будем отдельно разбираться.
Re: RESTinio 0.6.6
От: so5team https://stiffstream.com
Дата: 16.04.20 12:13
Оценка: 4 (1)
Намедни мы выкатили очередную версию 0.6.6, в которой, среди улучшений и исправлений, следует отметить две новых фичи.

Самая простая из них – это возможность повесить один обработчик сразу для нескольких методов при обращении к одному ресурсу. Например:
// Обработчик будет вызван для методов LOCK и UNLOCK.
router->add_handler(
   restinio::router::any_of_methods(
      restinio::http_method_lock(), restinio::http_method_unlock()),
   "/api/v1/resources/:rid",
   [](const auto & req, const auto & params) {...});

// Обработчик будет вызван для всех методов за исключением GET, POST и DELETE.
router->add_handler(
   restinio::router::none_of_methods(
      restinio::http_method_get(),
      restinio::http_method_post(),
      restinio::http_method_delete()),
   "/api/v1/users/:user",
   [](const auto & req, const auto & params) {...});

Но самое важное нововведение – это новый безопасный по типам роутер запросов, который может использоваться вместо привычного express-роутера. При этом новый роутер использует возможности C++ для выявления в compile-time ошибок, которые при использовании express-роутера проявляются только в run-time.

Новый роутер позволяет записать маршрут вот так:
namespace epr = restinio::router::easy_parser_router;
router->http_get(
   epr::path_to_params("/api/v1/posts/",
      epr::non_negative_decimal_number_p<std::uint64_t>(),
      "/revisions/",
      epr::non_negative_decimal_number_p<std::int16_t>()),
   [](const auto & req, std::uint64_t post_id, std::int16_t rev_id) {...});

тогда как в express-роутере этот же маршрут может описываться, например, так:
router->http_get("/api/v1/posts/:post_id(\d{1,10})/revisions/:rev_id(\d{1,5})",
   [](const auto & req, const auto & params) {
      const auto post_id = restinio::cast_to<std::uint64_t>(params["post_id"]);
      const auto rev_id = restinio::cast_to<std::int16_t>(params["rev_id"]);
   });

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

Взять и попробовать RESTinio можно с GitHub-а. Так же RESTinio доступен через Conan и vcpkg.
Отредактировано 16.04.2020 19:18 so5team . Предыдущая версия .
Re: RESTinio 0.6.13
От: so5team https://stiffstream.com
Дата: 29.12.20 08:52
Оценка: 3 (1)
Вышел очередной релиз RESTinio, о котором можно рассказать, потому что в свежей версии 0.6.13 появилось парочка новых и важных фич.

Первая фича -- это возможность провязать несколько обработчиков в цепочку. Какое-то приближение к middleware из EpressJS. При получении нового запроса обработчики из цепочки будут вызываться последовательно. Тем самым каждый обработчик может отвечать только за свою операцию (логирование параметров запроса, проверка значений в HTTP-заголовках, аутентификация и т.д.) и нужная приложению функциональность набирается посредством формирования соответствующей цепочки обработчиков.

Вторая фича, которая очень нужна для вышеупомянутых цепочек, -- это возможность внедрить объект нужного пользователю типа в объект-запрос, который создается внутри RESTinio при получении нового входящего запроса. Такой объект может использоваться для передачи дополнительной информации от одной стадии обработки запроса к другой.

Более подробно все это описано в статье на Хабре. Там же изложены и некоторые соображения о том, куда RESTinio может двигаться дальше.

Так же хочется поблагодарить всех, кто проявил конструктивный интерес к RESTinio и, особенно, тех, кто рискнул и применил RESTinio у себя. Конечно же, отдельное спасибо тем, кто нашел возможность и время поделиться с нами своими впечатлениями, соображениями и обнаруженными недостатками.
Re[2]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 08:51
Оценка: 2 (1)
Здравствуйте, MTD, Вы писали:

MTD>1. Каково ваше позиционирование фреймворка? Какова его ниша? Очевидно там где нужен максимум производительности, там будет голый epoll. В плане скорости разработки есть, например, Go обойти который на С++ мне представляется нереальным и который в сетевой части обеспечит такое же быстродействие как и ваш фреймворк.


Сначала немного о терминах, мы не позиционируем restinio как framework, это именно что библиотека, которая за рамками своей задачи не навязывает пользователю каких-то best practice правил. Так для меня фреймворк это что-то ближе к Poco или ACE, например.

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

В каких же случаях. Например, кейс который у нас и случался не раз: есть С++ приложение, которое уже есть как таковое, либо в силу каких-то причин будет разрабатывается на C++, и к нему требуется выставить REST API. То для такой задачи вполне подойдет restinio.

MTD>2. Какой ваш опыт в разработке серверов? Почему вы считаете, что достаточно глубоко понимаете данную специфику чтобы написать фреймворк? Например, бегло посмотрев я не нашел какой механизм вы предлагаете для защиты от медленных клиентов.


Опыт такой: периодически сталкиваемся (раз в год примерно) с задачей организовать REST API для старых C++ных систем или в новой системе REST API закладывается изначально. Мы пробовали разные библиотеки для этого, но в прод чаще всего это оказывался Poco. В первую очередь нам нужна была именно асинхронная обработка запросов (в Poco ее нет). Если заглянуть на более чем пару лет назад, то только restbed давал такую возмоность и был при этом зрелым инструментом, но он платный. Т.о. сами не раз выступали в роли пользователя и прочуствовали что таким пользователям как мы надо. И вот в начале года, когда очередной раз замаячила небходимость прикрутить к одной системе REST API, то мы собрали все требования к либе, с помощью которой это можно было бы сделать, и начали искать. И оказалось, что идеального кандидата не было, а т.к. сколько уже можно "брать что дают", то начали делать свой инструмент для себя исходя из своего опыта как пользователи подобного фрэймворка.

В restinio есть возможность контролировать время выполнения операций с соединением:


MTD>3. Смотрели ли вы другие плюсовые фреймворки, например, https://github.com/ipkn/crow? Чем ваше решение лучше других?


Да смотрели и под список своих хотелок не один не попал. CROW требует определится с ответом сразу в обработчике. Т.е. не получится просто принять запрос, мол да — будем на него отвечать, но попозже, а пока можно продолжить принимать другие запросы и не держать эту нить.
Re[16]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 17:06
Оценка: 2 (1)
Здравствуйте, MTD, Вы писали:

S>>Вот здесь все по существу: http://rsdn.org/forum/cpp.applied/6936956.1
Автор: so5team
Дата: 18.10.17


MTD>А где там ответ? Два вопроса и два утверждения. Где ответ-то?


По второму кругу, но специально для вас, можно пойти и на это. Итак, сперва вам дали исчерпывающие ответы на ваши вопросы. Далее вы заявили, что "Это не совсем то, что требуется в продакшене." Соответственно, вам тут же задали вопросы чтобы узнать, что вам нужно и какой у вас продакшен. Если вы не понимаете, зачем эти вопросы были заданы, то поясним: мы делали RESTinio исходя из своих соображений о том, как бы мы использовали RESTinio в известных нам условиях. Поэтому нам хочется узнать про условия, которые нам не известны. Но вы держите все в секрете. Сделаем вид, что мы вам поверили.

Далее вы говорите: "Во-первых, не понятно откуда такие константы". И мы вам поясняем, что такие константы задаются пользователем библиотеки. Что, на наш взгляд, полностью проясняет тот факт, что они не захардкожены в коде RESTinio. И что пользователь может задавать собственные значения. Вы удивитесь, но бывает и так, что подобные вещи зашиты в код библиотек и просто так их не изменить.

Далее идет сперва "во-вторых, это все равно не позволит отличить честного пользователя с модемом от злоумышленника.", а затем "И это только одна из множества потенциальных проблем". И тут же мы снова просим вас поделиться знаниями, которыми вы, якобы, обладаете. Но вы вновь все держите в секрете. Мы опять сделаем вид, что вам поверили.

Далее идет то, за что в реальной жизни с человеком либо просто перестают разговаривать, либо дружеским подсрачником возвращают в объективную реальность: "судя по тому, что у вас нет достаточного опыта в этом, предполагается отлаживаться на реальных пользователях, а это годы и репутация." На что мы в мягкой и цензурной форме вам сказали: "Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?", что следовало бы воспринять как: "Хватит мерятся длиной и давайте разговаривать по существу".

Так что все очень по делу и более чем адекватно. Если вы думаете, что в Интернете вам должны что-то большее, то проблемы с адекватностью вы ищете вовсе не там и не у тех.

S>>И здесь: http://rsdn.org/forum/cpp.applied/6936991.1
Автор: so5team
Дата: 18.10.17


MTD>Ответ есть: "В документации об этом написано." Формально вроде ответили, а фактически послали.


Фактически там была дана ссылка на раздел, в котором все описано. Если вы не можете читать документацию... Даже не так: если вы не желаете читать документацию на библиотеку, в обсуждение которой влезли, то не стоит рассчитывать, что вас вообще кто-то хоть как-то будет воспринимать.

S>>Как и здесь: http://rsdn.org/forum/cpp.applied/6937072.1
Автор: so5team
Дата: 18.10.17


MTD>А здесь где ответы? Одни вопросы и утверждения.


Вот именно в перечислении ситуаций там и есть ответы. И если вы не способны понять, что именно вам говорят, то попробуйте задать уточняющий вопрос. Вежливо. Возможно, у нас найдется время объяснить то, что вы не понимаете.

S>>И ни одного оскорбления вы там не найдете.


MTD>Да, только хамство, а прямые оскорбления тоже есть, но в других постах.


Т.е. оскорблений, о которых вы так долго говорили, вы сами же и не нашли.

MTD>Я даже больше скажу — каждый и мудак и нет, вот тут мудак, а тут уже нет.


Ну вам виднее, кто вы, где и когда.
Re: RESTinio 0.4.1 released!
От: so5team https://stiffstream.com
Дата: 30.01.18 14:34
Оценка: 2 (1)
Очередное обновление RESTinio (v.0.4.1)!

Что нового:


Основной репозиторий RESTinio находится на bitbucket (есть github зеркало).

Документация находится здесь.
RESTinio-0.4.4 с поддержкой компрессии
От: so5team https://stiffstream.com
Дата: 05.04.18 17:13
Оценка: 2 (1)
RESTinio обновился до версии 0.4.4.

Что изменилось:

Библиотека по-прежнему живет на bitbucket-е (https://bitbucket.org/sobjectizerteam/restinio-0.4) c зеркалом на github-е (https://github.com/Stiffstream/restinio), документация доступна у нас на сайте (https://stiffstream.com/en/docs/restinio/0.4/). Распространяется под BSD-3-CLAUSE лицензией.
Отредактировано 05.04.2018 19:13 so5team . Предыдущая версия . Еще …
Отредактировано 05.04.2018 17:14 so5team . Предыдущая версия .
c++ http server
Re[3]: RESTinio 0.4.1 released!
От: so5team https://stiffstream.com
Дата: 17.08.18 11:09
Оценка: 2 (1)
Здравствуйте, Igore, Вы писали:

I>А Boost.Beast не смотрели, можете что нибудь рассказать, про сравнение с этой библиотекой.


По неполиткорректному мнению одного из участников нашей команды, Boost.Beast -- это какая хрень незаслуженно распиаренный и слишком низкоуровневый конструктор, который может быть полезен всего двум категориям пользователей:

Всем остальным, кому нужно просто добавить HTTP в свой C++ный код и кто не хочет писать простыни кода, лучше держаться от Boost.Beast подальше. Если хотите наглядности в подтверждении этой мысли, то просто поищите пример HelloWorld для Boost.Beast и для RESTinio (или для CROW, RestBed или C++REST SDK). А еще лучше, какой-нибудь пример, который использует что-то вроде Express.js для роутинга запросов. Что-то вроде вот этого примера из нашего README:
#include <restinio/all.hpp>

using namespace restinio;

template<typename T>
std::ostream & operator<<(std::ostream & to, const optional_t<T> & v) {
    if(v) to << *v;
    return to;
}

int main() {
    // Create express router for our service.
    auto router = std::make_unique<router::express_router_t<>>();
    router->http_get(
            R"(/data/meter/:meter_id(\d+))",
            [](auto req, auto params) {
                const auto qp = parse_query(req->header().query());
                return req->create_response()
                        .set_body(
                                fmt::format("meter_id={} (year={}/mon={}/day={})",
                                        cast_to<int>(params["meter_id"]),
                                        opt_value<int>(qp, "year"),
                                        opt_value<int>(qp, "mon"),
                                        opt_value<int>(qp, "day")))
                        .done();
            });

    router->non_matched_request_handler(
            [](auto req){
                return req->create_response( 404, "Not found").connection_close().done();
            });

    // Launching a server with custom traits.
    struct my_server_traits : public default_single_thread_traits_t {
        using request_handler_t = restinio::router::express_router_t<>;
    };

    restinio::run(
            restinio::on_this_thread<my_server_traits>()
                    .address("localhost")
                    .request_handler(std::move(router)));

    return 0;
}

Возможно, тогда станет лучше понятно, что Boost.Beast -- это для мазохистов специфических задач, а RESTinio и ему подобные -- для обычных разработчиков.
Re: Наглядное сравнение с Boost.Beast
От: so5team https://stiffstream.com
Дата: 12.09.18 13:48
Оценка: 2 (1)
Автор Boost.Beast будет делать доклад на CppCon-2018 для которого он подготовил небольшой пример на базе Boost.Beast-а.
Мы, для сравнения выразительности и удобства использования двух библиотек, сделали тот же самый пример, но на базе RESTinio:

https://bitbucket.org/sobjectizerteam/beast-cppcon2018-vs-restinio

Можно наглядно сравнить сколько и какого кода потребуется написать с использованием разных библиотек.
Re: Версия 0.6.0
От: so5team https://stiffstream.com
Дата: 30.08.19 07:29
Оценка: 2 (1)
Выпущена новая версия RESTinio.

Со времени последнего анонса в RESTinio произошли следующие изменения:

* добавлено понятие connection state listener-а. В версии 0.6.0 для connection state listener добавлена возможность получить доступ к параметрам TLS-соединения;
* добавлено понятие IP-blocker-а;
* обновлены зависимости: Asio 1.14.0 (Asio 1.12 так же поддерживается), optional-lite 3.2.0, variant-lite 1.2.2. Добавлена поддержка fmtlib-6.0.0, но сам RESTinio пока использует fmtlib-5.3.0;
* добавлены макросы RESTINIO_VERSION, RESTINIO_VERSION_MAJOR, RESTINIO_VERSION_MINOR, RESTINIO_VERSION_PATCH, RESTINIO_VERSION_MAKE.

Версия 0.6.0 ломает совместимость с версией 0.5 в части API для connection state listener-ов. Поэтому при переходе на 0.6.0 может потребоваться правка кода, использующего RESTinio.

Разработка RESTinio теперь ведется только на GitHub, оттуда же можно забрать свежую версию. RESTinio-0.6.0 так же доступна через Conan и vcpkg.

Документация по версии 0.6 доступна здесь (руководство программиста) и здесь (справочник по API).

Можно отметить, что такие вещи, как connection state listener и IP-blocker, изначально не предполагались. Они были добавлены в RESTinio по просьбам пользователей. Так что если вам чего-то не хватает в RESTinio, то дайте нам об этом знать. Либо через Issues на GitHub-е, либо через Google-группу.
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 06:25
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>RESTinio -- это header-only, кросс-платформенный инструмент для встраивания HTTP/Websocket в С++ приложение.


1. Каково ваше позиционирование фреймворка? Какова его ниша? Очевидно там где нужен максимум производительности, там будет голый epoll. В плане скорости разработки есть, например, Go обойти который на С++ мне представляется нереальным и который в сетевой части обеспечит такое же быстродействие как и ваш фреймворк.
2. Какой ваш опыт в разработке серверов? Почему вы считаете, что достаточно глубоко понимаете данную специфику чтобы написать фреймворк? Например, бегло посмотрев я не нашел какой механизм вы предлагаете для защиты от медленных клиентов.
3. Смотрели ли вы другие плюсовые фреймворки, например, https://github.com/ipkn/crow? Чем ваше решение лучше других?
Отредактировано 18.10.2017 6:29 MTD . Предыдущая версия .
Re[8]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 10:10
Оценка: :)
Здравствуйте, MTD, Вы писали:

MTD>Я ошибаюсь?


Да.

MTD>Ну покажите мне ссылку, где автор написал, что такой опыт у него есть.


Покажите ссылку, где бы авторы сказали, что у них такого опыта нет.

Ну а если совсем уж сорвать покровы, то мы бросились делать RESTinio прочитав всего половину какой-то книжки по C++ и лишь бегло просмотрев описание HTTP 1.1 в русскоязычной Wikipedia. Мы пытались это старательно скрывать, но на поверку это оказался секрет Полишинеля. Посыпем себе головы пеплом и пойдем убъемся апстену.

MTD>Далее, предложил идею для позиционирования — вылизанный и стабильный nginx принимает соединения, расшифровывает https, а на их фреймворке написан сервер с асинхронными обработчиками и удобным роутингом, на который nginx перенаправляет трафик — вполне себе неплохое вырисовывается решение.


Очевидное решение с использованием reverse proxy. Дальше-то что? Ну вот перенаправил nginx запрос на приложение, что и как приложение должно с этим делать? Ну и какая разница приложению, стоит перед ним reverse proxy или нет?

Ну и это если не брать такую большую тему, как микросервисная архитектура с такими схемами развертывания, когда большинство микросервисов (написанных на разных языках, в том числе и на C++) вообще наружу никуда не смотрит.

И уж совсем не стоит заводить разговор про направление IoT, где могут быть локальные сети умных устройств, требующих взаимодействие по каким-то протоколам поверх HTTP (тот же REST, к примеру). И нет возможности поставить на дохлом умном устройстве еще и nginx для того, чтобы он работал как reverse proxy.
Re[13]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 16:22
Оценка: -1
Здравствуйте, so5team, Вы писали:

S>Простите, но вас никто даже в качестве бета-тестировщика не рассматривает.


Ну и отлично! Можем же по некоторым вопросам иметь общее мнение.

S>Ноунейм, как он есть. Непонятная квалификация.


Если это была детская попытка задеть меня, то увы, попробуйте еще.

S>Неспособность задавать вопросы.


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

S>Неспособность воспринимать ответы.


В первом ответе ответы какие-никакие были, а дальше одни обвинения и оскорбления. Я не прав? Ну покажите мне адекватный и исчерпывающий ответ по-существу.

S>Настолько тонкая душевная организация, что оскорбления вам видятся даже там, где вам просто указывают на отсутствие конструктива.


Не надо строить из себя невинную барышню, дибилом вы меня в теме уже назвали (кокетливо зачеркнув, что сути не меняет), а в следующем предложении будет снова оскорбление.

S>принципа "Никогда не работай с мудаками".


Согласен по поводу утверждения, предлагаю дополнить — "и не используйте их велосипеды".

S>Ну а то, что вы в соседнем ответе
Автор: MTD
Дата: 18.10.17
позволили высказать в адрес не имеющих никакого отношения к нашей команде форумчан, это уже за гранью.


Просто констатация факта — троицу, не знаю, что так взволновало, что они пол дня мониторят тему чтобы выразить одобрямс или высказать фу.
Re[13]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 16:27
Оценка: -1
Здравствуйте, rameel, Вы писали:

R>А ты забавный Влетел в тему как паровоз в толпу


Толпа состояла из so5team, потом конечно набежали "а мы пойдем на север".

R>конструктива с твоей стороны ноль целых ноль десятых, только одни нападки и обвинения


Что характерно когда просишь быть конкретней и показать пальцем, то отчего-то игнор.

R>одни у тебя неучи и недоросли


Это ты врешь, ну или покажи где я такое утверждал. Я просто поинтересовался у разработчика библиотеки его опытом в данной области — какой страшный грех.

R>другие — заискиватели. Молодец! Так держать!


Ну ты же пол дня мониторишь тему чтобы выразить одобрямс? Это просто факт. Почему ты так делаешь я не знаю, может быть заискиваешь, а может я тебе чем-то не нравлюсь — это не проблема, я переживу.

R>ЗЫЫ. Шапочку из фольги поправьте, а то кругом враги, ужас-ужас!


Ты что-то путаешь, у меня кругом друзья и сам я очень дружелюбный, хороший парень.
Re[15]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 17:25
Оценка: -1
Здравствуйте, rameel, Вы писали:

MTD>>Что характерно когда просишь быть конкретней и показать пальцем, то отчего-то игнор.


R>Тебе указали уже несколько раз, ну а по поводу игнора, то попробуй общаться нормально, тогда и ответы будут


Игнор по той причине, что когда вас просят конкретику — ответить нечем, так как все на эмоциях и отношения к тому что я писал имеет отдаленное.

R>>>одни у тебя неучи и недоросли


MTD>>Это ты врешь, ну или покажи где я такое утверждал.


R>Просто перечитай свои ответы


Я вообще не удивлен, что ты соврал. Вот такой ты врунишка.

MTD>>Я просто поинтересовался у разработчика библиотеки его опытом в данной области — какой страшный грех.


R>Ты не интересовался, ты сразу в наступление перешел.


Это твоя эмоциональная оценка. Вопрос был нейтрален:

2. Какой ваш опыт в разработке серверов? Почему вы считаете, что достаточно глубоко понимаете данную специфику чтобы написать фреймворк?


Сформулируй этот вопрос более нейтрально, покажи как надо.
Re[19]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 18:21
Оценка: -1
Здравствуйте, so5team, Вы писали:

S>Вы опять не правы.


Про это мы уже говорили, есть люди которые всегда уверены в своей правоте, все другие для них, если думают иначе — неправы.

S>Речь о том, что если вы приходите в тему без конструктива, то пользы от вас ноль.


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

S>Если в ответ на эти слова вы начинаете себя вести как оскорбленная институтка, то ничего не остается, как начать называть вещи своими именами.


Вообще-то как ребенок ведете себя вы — не стал я вас гладить по голове и все — слезы, сопли, обиды.

S>Так что давайте без обиняков: если вам есть что сказать по делу, то говорите.


Я уже сказал, если хотите продолжения ответьте исчерпывающе на мои вопросы.

S>Если вы не хотите общаться предметно и конструктивно, то вы, очевидно, тролль-пустозвон и, с большой долей вероятности, "малолетний дебил" (c) Вам выбирать кем быть.


Я же говорю — обиженный ребенок.

S>Ну и да, на вопрос про опыт вам был дан ответ
Автор: so5team
Дата: 18.10.17
.


Единственный адекватный ответ, пусть и очень неполный.

S>Другого не будет.


Ой, беда.

S>Здесь не опыт обсуждается, а библиотека с открытым кодом, с примерами, с тестами, с документацией.


Сначала надо с опытом разобраться, может быть ковырять субстанцию вообще смысла нет. Хотя тут ясность есть, но так, для порядка.

S>цвета трусов


С этим у вас тоже проблемы?
Re[21]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 18:31
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>На кону мочало, начинаем все с начала. Не было конструктива.


Был.

S>Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.


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

S>На ваши вопросы были даны ответы.


Не было.

S>вы всегда можете вежливо переспросить и уточнить.


Я с самого начала так и поступал, но у вас бомбануло, началась истерика, хамство, оскорбления, что напрочь отбило желание общаться конструктивно, теперь так прихожу понаблюдать за корчами — забавно.
Re[27]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 08:45
Оценка: :)
Здравствуйте, so5team, Вы писали:

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


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


Типа если надо оппонета дебилом назвать — это зона ответственности одного, а если мудаком — то другого? Да вы там упоролись

S>Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.


А что там сложного? Взять готовые либы и написать некоторое количество оберток — курсовой проект в вузе.
Re[29]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 09:20
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>что резкость в высказываниях


Где резкость? Жалобы, нытье, хамство, оскорбления — это не резкость.

S>В одном случае Вы занимаетесь деятельностью, не делая никаких выводов о результатах этой деятельности, в другом случае Вы предоставляете информацию, не подкрепленную никаким опытом или фактами.


Кстати, четкое определение того, чем вы занимаетесь уже который год.

S>Безусловно, у нас мог бы получиться конструктивный диалог


Да, достаточно не хамить, если не нравится ответ и люди потянутся.

S>Мы обязательно сделаем выводы и постараемся в следующий раз более взвешенно отвечать на Ваши вопросы, если конечно же Вы не потеряете интерес к нашей разработке.


Вот это уже слова взрослого человека, осталось сделать второй шаг и извиниться.
Re[10]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: Слава  
Дата: 19.10.17 10:13
Оценка: -1
Здравствуйте, MTD, Вы писали:

MTD>Есть мнение, что у вашего решения требования гораздо выше, чем у nginx. Ну и то, что на какой-то железке не будет С++ компилятора который умеет С++11 я прям уверен на 95% — снова ошибка позиционирования.


Скажите, а почему вы постоянно суёте этот ваш бжынн.... джын... дрын-дрын-дрын... о, проперделся наконец-то, завёлся, этот ваш nginx джинкающий? Почему не apache httpd, не g-wan?

Мне в демон на яве написанный, с http-интерфейсом — тоже джын-джынкс запихивать? Как у него с работой на виндах, Сысоев и по сей день не осилил IOCP использовать?

Кстати говоря, в системах, работающих 24*7*365, обычно никаких nginx'ов не бывает, они там разве что от бедности заводятся.
Re[31]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 10:15
Оценка: :)
Здравствуйте, so5team, Вы писали:

S>Попытки конструктивного общения с вами предпринимались неоднократно (№1
Автор: so5team
Дата: 18.10.17
, №2
Автор: so5team
Дата: 18.10.17
, №3
Автор: so5team
Дата: 18.10.17
, №4
Автор: so5team
Дата: 18.10.17
, №5
Автор: so5team
Дата: 18.10.17
) и не только нами (№1
Автор: antropolog
Дата: 18.10.17
, №2
Автор: antropolog
Дата: 18.10.17
).


Завязывайте заливать — слово конструктивный вы трактуете по своему. Нравится ответ — конструктивный, не нравится — не конструктивный.

S>делать мутные намеки на якобы имеющиеся у вас сакральные знания


Не надо врать, намеков никаких я не делал — сразу сказал, что опыта у меня мало:

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


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

S>а так же истерить изображая из себя оскорбленную невинность


Вы уже рассказали, что то ли вас там много, то ли личности в голове одного переключаются — это заметно, сначала выходит быдло и оскорбляет собеседника, потом подключается овечка и вопрошает, а где оскорбления.

S>a) удерживать тему на плаву, ибо черного PR-а не бывает;


Отлично, работаем дальше.

S>b) наглядно проиллюстрировать потенциальным пользователям ваш же тезис о том, что их ждет, если они придут к нам с баг-репортом.


Что же — это честно, пусть иллюзий не питают связываясь с вашими разработками. Жму руку.

S>Если вы чего-то не понимаете, то это вовсе не следствие того, что мы сделали что-то сложно.


Я даже не смотрел. Что у вас за мания величия, будто все только и жаждут покопаться в том, что вы там произвели в муках.

MTD>>Есть понимание — ты тешишь свое самолюбие и мечтаешь (уже сколько лет) завоевать мир, получить призвание. Миру как обычно пофиг.


S>Если вы так понимаете ситуацию с разработками нашей команды, то во-первых, вы точно не правы


Ладно мне вы врете, но самому себе не надо.

S>у вас какой-то запущенный случай юношеского максимализма.


Так это же у вас, но даже не юношеского, а детского — кто меня не хвалит, тот дурак.

S>Что еще раз подтверждает диагноз: "малолетний дебил" (с)


Ну-ну.
Re[35]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 11:26
Оценка: -1
Здравствуйте, so5team, Вы писали:

MTD>>Трактовать слово по своему или заливать? Нет, не имеете. Трактовать слова не надо — для этого словари есть, заливать тоже взрослому человеку не красиво.


S>Еще раз: мы, как разработчики презентуемой библиотеки, имеем право оценивать полезность ваших слов для дальнейшего развития библиотеке. Имеем полное право.


Имеете, а врать и переиначивать слова — нет. А еще я имею право высказать, что я думаю.

S>Мы даем оценку тому, что вы говорите. Мы.


Больше мы, больше. Что, Евгений, начинает подгорать как вчера? Это хорошо. Я тоже даю вам оценку. Я.

S>С эпическим сливом:


Да, зачетно вы слились со своим мега-опытом, который есть, но которого нет.

S>не несет для RESTinio никакой полезной информации, о чем вам уже неоднократно сообщали.


Несет, просто вы это понять не хотите. Ну и ездите на своих велосипедах самостоятельно. За столько лет так и не научится ни чему — талант.

S>Т.е. вы полезли "с конструктивом" в тему, с которой даже не соизволили ознакомиться.


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

MTD>> но у вас так пригорело, что вместо того чтобы вежливо попросить пояснить, вы устроили цирк.


S>Да пока что горит разве что у вас.


Не волнуйтесь, горит, горит, уже легче?
Re[2]: v.0.5.0: возможность работы с кастомными версиями http-parser
От: Denis Ivlev  
Дата: 04.06.19 16:11
Оценка: -1
Здравствуйте, so5team, Вы писали:

S>Со времени последнего анонса в RESTinio было исправлено несколько ошибок


Прочитал как "наделано ошибок". Простите)
Re[4]: v.0.5.0: возможность работы с кастомными версиями http-parser
От: Denis Ivlev  
Дата: 04.06.19 16:40
Оценка: -1
Здравствуйте, so5team, Вы писали:

S>Да вы своим ослоумием и "полезными" комментариями здесь резко выделяетесь, так что продолжайте. Публике нужны развлечения.


А что ты так завелся? Ты же искал своей поделке внимание — ну так вот оно, что не так? кстати, интересно за "ослоумие" тебя забанят или ты и есть специальный шут, которому позволительно хамить?
Re[6]: v.0.5.0: возможность работы с кастомными версиями http-parser
От: Denis Ivlev  
Дата: 04.06.19 16:50
Оценка: -1
Здравствуйте, so5team, Вы писали:

S>Идиотский комментарий от человека, уже успевшего себя зарекомендовать специфическим образом.


Хочу работать над собой, покажи пожалуйста тройку комментариев, чтобы я подумал над своим поведением. Я без приколов. Спасибо.
Re[3]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 09:13
Оценка:
Здравствуйте, so5team, Вы писали:

S>В restinio есть возможность контролировать время выполнения операций с соединением:


S>

Это не совсем то, что требуется в продакшене. Во-первых, не понятно откуда такие константы, во-вторых, это все равно не позволит отличить честного пользователя с модемом от злоумышленника. И это только одна из множества потенциальных проблем, судя по тому, что у вас нет достаточного опыта в этом, предполагается отлаживаться на реальных пользователях, а это годы и репутация. Почему бы просто не взять nginx — отлаженный сервер, который уже умеет все что нужно и делает это хорошо, надо только написать конфигурацию. Далее, пусть он сам работает с https, защищает от всяких нежданчиков и перенаправляет http трафик на нужный порт, а там уже пусть будет ваш сервер. В принципе удобный роутинг с асинхронными обработчиками — good enough, тут я вижу место для вашего фреймворка (я все-таки уверен, что это фреймворк, так как навязывает определенные правила).
Re[4]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 09:17
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Это не совсем то, что требуется в продакшене.


И что же вам требуется в продакшене? И в каком именно продакшене?

MTD>Во-первых, не понятно откуда такие константы,


Из параметров, задаваемых пользователем.

MTD>во-вторых, это все равно не позволит отличить честного пользователя с модемом от злоумышленника.


Подскажите нужный вам способ.

MTD>И это только одна из множества потенциальных проблем,


Огласите весь список, пожалуйста.

MTD>судя по тому, что у вас нет достаточного опыта в этом, предполагается отлаживаться на реальных пользователях, а это годы и репутация.


Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?
Re[5]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 09:30
Оценка:
Здравствуйте, so5team, Вы писали:

MTD>>Это не совсем то, что требуется в продакшене.


S>И что же вам требуется в продакшене? И в каком именно продакшене?


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

MTD>>Во-первых, не понятно откуда такие константы,


S>Из параметров, задаваемых пользователем.


Где они? Как называются?

MTD>>И это только одна из множества потенциальных проблем,


S>Огласите весь список, пожалуйста.


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

MTD>>судя по тому, что у вас нет достаточного опыта в этом, предполагается отлаживаться на реальных пользователях, а это годы и репутация.


S>Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?


Я уже достаточно конструктивно высказался, можно послушать, а можно обидеться и жаловаться, что пользователь дурак, не оценил души порывов.
Re[7]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: night beast СССР  
Дата: 18.10.17 09:43
Оценка:
Здравствуйте, so5team, Вы писали:

MTD>>Я уже достаточно конструктивно высказался


S>Это вам так показалось. Пока пользы от ваших высказываний ноль целых ноль десятых.


забей. только время потеряешь
Re[8]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 10:17
Оценка:
Здравствуйте, MTD, Вы писали:

S>>Так чего же вам не хватает в продакшене? Вы же сказали, что не хватает, так чего именно?


MTD>На многие ответы можно получить ответ, если вежливо интересоваться


Простите великодушно. Можем ли мы вас попросить описать, какие требования к HTTP/Websocket серверам вы предъявляете для использования в своем продакшен окружении? Опишите, пожалуйста, если сможете найти время и уделить внимание нашей скромной просьбе.

S>>Ну т.е. список, может быть и существует у вас в голове, но озвучить вы его не можете.


MTD>Могу, но не хочу, попросил бы вежливо — получил бы вежливый ответ.


Пожалуйста, огласите свой список. Мы приносим извинения за резкий тон в своих предыдущих высказываниях и просим принять во внимание тот факт, что данный список может быть интересен не только разработчикам RESTinio.

S>>Это вам так показалось. Пока пользы от ваших высказываний ноль целых ноль десятых.


MTD>Казалось бы за столько лет человек мог бы задаться вопросом, почему его велосипеды никто не использует, но нет, автор твердо убежден — пользователи не те, с ним же все ок.


Вы делаете ошибку предполагая, что у RESTinio всего один автор и предполагая, что общаетесь именно с тем человеком, которого подозреваете в авторстве.
Re[9]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 10:18
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Как раз авторы на РСДН давно и всем известны, их опыт тоже.


Мне тоже, я даже его блог временами читаю. Но чисто для понимания простой пример — специалист по криптографии, не факт, что шарит в 3Д. Еще раз — если я ошибаюсь и у авторов обширный опыт написания и поддержки серверов, которые работают 7*24*365 обслуживая самых разных клиентов, пусть покажет или хотя бы подтвердит, что такой опыт есть.

N>Никаких же конкретных вещей про С++ библиотеку, выполняющую указанные функции, тобой сказано не было.


Каких конкретных? Названия методов пообсуждать? Я спросил для примера как они с медленными клиентами предлагают работать. Вопрос конкретный?
Re[9]: RESTinio 0.3: header-only C++14 библиотека с HTTP/We
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 10:38
Оценка:
Здравствуйте, antropolog, Вы писали:

A>непонятно к чему ты вообще вопрос этот задал.


Вопросы задают чтобы получить ответ, мне было не понятно, я уточнил — получил обвинения в неконструктиве. Простите, даже не знаю какие реверансы делать, чтобы не задеть ничьих чувств.

A>т.е. это альтернатива restbed, cpprestsdk, pion, cppnetlib и ещё доброй дюжины embeddable http-серверов для C++.


И почему надо выбрать его?

A>К чему здесь вопрос о запредельном перформансе и


А где такой вопрос? Ткни пальцем, а то ощущение, что ты не мои посты комментируешь. Про турнир хай лоад, не я писал, а автор.

A>возможности работать 24x7


Мне не нравится, когда на меня тикеты заводят, хочу чтобы работало стабильно. Удивительно, да?

A>а не к коду )?


Ага, ошибки в коде и отсутствие поддержки нештатных ситуаций ни на что не влияют, ага.

MTD>>Ну покажите мне ссылку, где автор написал, что такой опыт у него есть. Тебя бы это не насторожило?


A>меня бы это не насторожило, потому что исходя из позиционирования библиотеки и существующих альтернатив меня бы интересовали совершенно другие вопросы,


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

A>нежели сколько библиотека выдаёт rps по сравнению с голым epoll


Это твой тезис, не надо мне приписывать то, что я не говорил.

A>идеи о позиционировании не нужны


Ну тогда и удивляться нечему, что велосипеды пылятся.
Re[10]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 11:02
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Ерничать не надо — не красиво.


В сухом остатке: у вас есть какой-то список хотелок и требований, но вы их не озвучите.

Ok. Мы сделаем вид, что не считаем вас дебиломтроллем-пустозвоном, что вы просто человек с тонкой душевной ориентацией, который не хочет на профильном ресурсе делиться своим опытом с коллегами из-за нанесенных вам оскорблений с нашей стороны. За оскорбления приносим свои извинения, это получилось случайно.

Спасибо за потраченное время, ваш фидбэк оказался бесполезным, как пользователь вы нам не интересны.
Re[9]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 11:06
Оценка:
Здравствуйте, so5team, Вы писали:

MTD>>Я ошибаюсь?


S>Да.


Допускаю, переубедите меня.

MTD>>Ну покажите мне ссылку, где автор написал, что такой опыт у него есть.


S>Покажите ссылку, где бы авторы сказали, что у них такого опыта нет.


2. Какой ваш опыт в разработке серверов? Почему вы считаете, что достаточно глубоко понимаете данную специфику чтобы написать фреймворк?

Опыт такой: периодически сталкиваемся (раз в год примерно) с задачей организовать REST API для старых C++ных систем или в новой системе REST API закладывается изначально. Мы пробовали разные библиотеки для этого, но в прод чаще всего это оказывался Poco.


http://rsdn.org/forum/cpp.applied/6936918.1
Автор: so5team
Дата: 18.10.17


Ответ человека который имеет опыт выглядит так: пишем сервера более 15 лет, например: [идет список со ссылками, коротким описанием, перечислением архитектурных и технических решений, нагрузкой и т.д.]

S>Ну а если совсем уж сорвать покровы, то мы бросились делать RESTinio прочитав всего половину какой-то книжки по C++ и лишь бегло просмотрев описание HTTP 1.1 в русскоязычной Wikipedia.


Пока что у меня сложилось именно такое впечатление.

S>Мы пытались это старательно скрывать, но на поверку это оказался секрет Полишинеля. Посыпем себе головы пеплом и пойдем убъемся апстену.


Ерничать не красиво, если есть что сказать — можно просто дать конкретику, а это несерьезно, для человека который предлагает людям завязаться в своем коде на его решение.

S>Очевидное решение с использованием reverse proxy. Дальше-то что? Ну вот перенаправил nginx запрос на приложение, что и как приложение должно с этим делать?


Я же написал, тут простое решение с асинхронными обработчиками и удобным роутингом засияет.

S>Ну и какая разница приложению, стоит перед ним reverse proxy или нет?


Огромная. nginx написан людьми с большим опытом, там убраны все те грабли по которым вам только предстоит пройти.

S>И уж совсем не стоит заводить разговор про направление IoT, где могут быть локальные сети умных устройств, требующих взаимодействие по каким-то протоколам поверх HTTP (тот же REST, к примеру). И нет возможности поставить на дохлом умном устройстве еще и nginx для того, чтобы он работал как reverse proxy.


Есть мнение, что у вашего решения требования гораздо выше, чем у nginx. Ну и то, что на какой-то железке не будет С++ компилятора который умеет С++11 я прям уверен на 95% — снова ошибка позиционирования.
Re[11]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 11:11
Оценка:
Здравствуйте, so5team, Вы писали:

S>В сухом остатке: у вас есть какой-то список хотелок и требований, но вы их не озвучите.


В сухом остатке: кто-то не имею опыта в предметной области написал непонятно что, зачем это использовать он и сам не знает.

S>Ok. Мы сделаем вид, что не считаем вас дебиломтроллем-пустозвоном, что вы просто человек с тонкой душевной ориентацией, который не хочет на профильном ресурсе делиться своим опытом с коллегами из-за нанесенных вам оскорблений с нашей стороны. За оскорбления приносим свои извинения, это получилось случайно.


Ок. Предлагаю посмотреть на свою коллекцию никому не нужных велосипедов (кроме Интервейла, да и ему не нужен, просто так исторически вышло), а потом подумать кем вы по сути являетесь.

Кстати, потенциальным пользователям предлагаю посмотреть, как вероятно будет выглядеть ответ на ваш баг репорт.

S>Спасибо за потраченное время, ваш фидбэк оказался бесполезным, как пользователь вы нам не интересны.


Фух, пронесло.
Re[12]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 11:36
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Кстати, потенциальным пользователям предлагаю посмотреть, как вероятно будет выглядеть ответ на ваш баг репорт.


Пример реакции на баг-репорт можно посмотреть вот в этих комментариях ну и сделать свои выводы об адекватности поведения авторов библиотек. Ну или вот еще.
Re[13]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 14:45
Оценка:
Здравствуйте, so5team, Вы писали:

MTD>>Кстати, потенциальным пользователям предлагаю посмотреть, как вероятно будет выглядеть ответ на ваш баг репорт.


S>Пример реакции на баг-репорт можно посмотреть вот в этих комментариях ну и сделать свои выводы об адекватности поведения авторов библиотек. Ну или вот еще.


То есть за столько лет пару раз вы были в духе, чтобы ответить нормально? Как-то тревожно.
Re[12]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: rameel https://github.com/rsdn/CodeJam
Дата: 18.10.17 15:58
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Сейчас ответ не вам, а просто забавное наблюдение. Троица как за вами ходит, в течении получаса на ваш ответ мне, дружно пришли и выразили одобрямс — внимательно наблюдают за темой. Один наверное с вами работает? Заискивает? А остальные?


А ты забавный Влетел в тему как паровоз в толпу, конструктива с твоей стороны ноль целых ноль десятых, только одни нападки и обвинения: одни у тебя неучи и недоросли, другие — заискиватели. Молодец! Так держать!

ЗЫ. У всех троих "заискивателей" как ты выразился, всего по одному плюсу за всю тему so5team и оценке на стартовое сообщение.

ЗЫЫ. Шапочку из фольги поправьте, а то кругом враги, ужас-ужас!
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Re[14]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 16:32
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>В первом ответе ответы какие-никакие были, а дальше одни обвинения и оскорбления. Я не прав?


Не правы.

MTD>Ну покажите мне адекватный и исчерпывающий ответ по-существу.


Вот здесь все по существу: http://rsdn.org/forum/cpp.applied/6936956.1
Автор: so5team
Дата: 18.10.17

И здесь: http://rsdn.org/forum/cpp.applied/6936991.1
Автор: so5team
Дата: 18.10.17

Как и здесь: http://rsdn.org/forum/cpp.applied/6937072.1
Автор: so5team
Дата: 18.10.17


И ни одного оскорбления вы там не найдете.

Мы же, в свою очередь, вообще нигде не смогли найти конструктива и конкретики с вашей стороны.

MTD>Согласен по поводу утверждения, предлагаю дополнить — "и не используйте их велосипеды".


Да, велосипеды мудаков лучше не использовать. Они их, кстати, и не делают.
Re[15]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 16:45
Оценка:
Здравствуйте, so5team, Вы писали:

S>Неспособность воспринимать ответы.


MTD>>В первом ответе ответы какие-никакие были, а дальше одни обвинения и оскорбления. Я не прав?


S>Не правы.


MTD>>Ну покажите мне адекватный и исчерпывающий ответ по-существу.


S>Вот здесь все по существу: http://rsdn.org/forum/cpp.applied/6936956.1
Автор: so5team
Дата: 18.10.17


А где там ответ? Два вопроса и два утверждения. Где ответ-то?

S>И здесь: http://rsdn.org/forum/cpp.applied/6936991.1
Автор: so5team
Дата: 18.10.17


Ответ есть: "В документации об этом написано." Формально вроде ответили, а фактически послали.

Реплика «RTFM!» может вызывать много лулзов, особенно если всем известно, что этой самой инструкции в природе не существует.


S>Как и здесь: http://rsdn.org/forum/cpp.applied/6937072.1
Автор: so5team
Дата: 18.10.17


А здесь где ответы? Одни вопросы и утверждения.

S>И ни одного оскорбления вы там не найдете.


Да, только хамство, а прямые оскорбления тоже есть, но в других постах. В принципе, мне на эти ужимки все равно — не барышня, но белого и пушистого строить поздно.

S>Да, велосипеды мудаков лучше не использовать.


И снова консенсус — это радует.

S>Они их, кстати, и не делают.


Ой, да ладно. Все делают. Я даже больше скажу — каждый и мудак и нет, вот тут мудак, а тут уже нет.
Re[14]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: rameel https://github.com/rsdn/CodeJam
Дата: 18.10.17 17:19
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Что характерно когда просишь быть конкретней и показать пальцем, то отчего-то игнор.


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

R>>одни у тебя неучи и недоросли


MTD>Это ты врешь, ну или покажи где я такое утверждал.


Просто перечитай свои ответы

MTD>Я просто поинтересовался у разработчика библиотеки его опытом в данной области — какой страшный грех.


Ты не интересовался, ты сразу в наступление перешел.

R>>другие — заискиватели. Молодец! Так держать!


MTD>Ну ты же пол дня мониторишь тему чтобы выразить одобрямс? Это просто факт.


А что мне ее мониторить, у меня ридер есть, советую.

MTD>Почему ты так делаешь я не знаю, может быть заискиваешь, а может я тебе чем-то не нравлюсь — это не проблема, я переживу.


Тебе не приходит в голову, что кто-то может быть просто солидарен с кем-то в некотором вопросе? Или согласиться это уже заискивание?! Вот это поворот! (с)

В общем, жирно товаришь, очень жирно, что аж капает!

... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Re[17]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 17:21
Оценка:
Здравствуйте, so5team, Вы писали:

S>Если вы думаете, что в Интернете вам должны что-то большее, то проблемы с адекватностью вы ищете вовсе не там и не у тех.


Я как раз ничего не жду, это у вас, как у меня сложилось мнение подход "я написал очередной велосипед, кто не хвалит тот плохой".

S>Т.е. оскорблений, о которых вы так долго говорили, вы сами же и не нашли.


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

Мы сделаем вид, что не считаем вас дебиломтроллем-пустозвоном, что вы просто человек с тонкой душевной ориентацией


Вы прям наглядная демонстрация актуальности принципа "Никогда не работай с мудаками".


MTD>>Я даже больше скажу — каждый и мудак и нет, вот тут мудак, а тут уже нет.


S>Ну вам виднее, кто вы, где и когда.


Снова опустились до детских дразнилок. В принципе, да, есть такие люди нетерпимые к чужому мнению, типа меня мама хвалила, я запомнил, что я молодец, а вы дураки. Достаточно вспомнить вашу мега-обиду на других участников форума, после чего вы несколько лет писали только у себя в бложике, иногда сочиняя посты в стиле: "Смотрите какие на РСДН дураки".
Re[18]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 17:30
Оценка:
Здравствуйте, night beast, Вы писали:

NB>у вас там, кстати, с версткой что-то.

NB>На работе глянул, нормально. Дома такая хрень:
NB>Image: Screen.jpg

NB>Разрешение 1280:1024.


Ok. Видимо, BitBucket так себя ведет на небольших дисплеях. Учтем. Вероятно, придется описывать параметры без использования таблиц.

Спасибо за репорт.
Re[18]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 17:42
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Я как раз ничего не жду, это у вас, как у меня сложилось мнение подход "я написал очередной велосипед, кто не хвалит тот плохой".


Вы опять не правы. Речь о том, что если вы приходите в тему без конструктива, то пользы от вас ноль. Если в ответ на эти слова вы начинаете себя вести как оскорбленная институтка, то ничего не остается, как начать называть вещи своими именами.

Так что давайте без обиняков: если вам есть что сказать по делу, то говорите. Например, ответьте на вопросы, заданные вам здесь: http://rsdn.org/forum/cpp.applied/6936956.1
Автор: so5team
Дата: 18.10.17


Если вы не хотите общаться предметно и конструктивно, то вы, очевидно, тролль-пустозвон и, с большой долей вероятности, "малолетний дебил" (c) Вам выбирать кем быть.

Ну и да, на вопрос про опыт вам был дан ответ
Автор: so5team
Дата: 18.10.17
. Другого не будет. Здесь не опыт обсуждается, а библиотека с открытым кодом, с примерами, с тестами, с документацией. На вопросы по библиотеке будем отвечать. На отвлеченные, вроде размера опыта или цвета трусов -- нет.
Re: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: c-smile Канада http://terrainformatica.com
Дата: 18.10.17 17:46
Оценка:
Здравствуйте, so5team, Вы писали:

S>Взгляд со стороны, пожелания, предложения и конструктивная критика приветствуются!


Что означает "basic support of websockets", слово basic в частности?

И это про ws: или про wss: (secured web sockets) тоже?

(давно хочу поменять свою имплементацию web sockets писанную на левой коленке, вот присматриваюсь...)
Re[2]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 18.10.17 17:59
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Что означает "basic support of websockets", слово basic в частности?


Basic означает, что RESTinio делает только базовые манипуляции с Websocket-фреймами. Т.е. принимает входящий фрейм, проверяет его корректность и, если фрейм корректен, то фрейм отдается пользователю для обработки. При этом на плечах пользователя остаются следующие задачи:
Так же restinio::websocket::basic делает только минимально необходимые операции с исходящими фреймами.

В последующих версиях мы хотим сделать еще и restinio::websocket::easy, в котором пользователю будут доставляться только текстовые и бинарные фреймы, а ping-и и pong-и будет обрабатывать сам restinio. Так же хотим, чтобы в restinio::websocket::easy пользователь просто указывал URL-ы, на которых он ждет обращения по websocket-ам, а upgrade выполнял бы сам RESTinio. Ну и в easy-реализации RESTinio мог бы сам глушить все открытые websocket-ы при завершении работы сервера.

При этом пользователю будут доступны и restinio::websocket::basic, и restinio::websocket::easy.

По остальным вопросам ответим позже.
Re[20]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 18:27
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Конструктив был


На кону мочало, начинаем все с начала. Не было конструктива.

Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.

MTD>Я уже сказал, если хотите продолжения ответьте исчерпывающе на мои вопросы.


На ваши вопросы были даны ответы. Если вы что-то в ответах не поняли и/или не увидели, то a) это ваши проблемы и b) вы всегда можете вежливо переспросить и уточнить.
Re[22]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 18.10.17 18:41
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Был.


Да, вы "малолетний дебил" (с). Вот и весь конструктивный итог общения с вами в данной теме.

S>>Даже ваши сентенции по поводу предполагаемого nginx-а в качестве предшествующего reverse proxy, совершенно не по делу, поскольку наличие или отсутствие перед приложением с RESTinio внутри ничего не меняет в позиционировании и целях RESTinio.


MTD>Конечно меняет, nginx серьезный отлаженный продукт созданный опытными людьми, там уже 100 раз обошли все грабли, про которые вы пока даже не в курсе.


Еще раз, специально для вас, вдруг дойдет: есть C++ приложение, которое должно выставить наружу REST API или простой HTTP вход. В это приложение будут приходить запросы по протоколу HTTP. И приложению совершенно безразлично, будут ли запросы приходить напрямую от клиента, или же их будет выдавать какой-то load balancer или reverse proxy перед приложением. RESTinio решает задачу простого, безболезненного, но эффективного встраивания этого самого HTTP-входа в C++ приложение.

Все. Именно для этого RESTinio и сделан.

Хотите иметь перед своим приложением "серьезный отлаженный продукт созданный опытными людьми" -- пожалуйста, никто вам не запретит. Только вот nginx не поможет вам реализовать HTTP-вход в само приложение (если только вы не будете делать этот самый вход через (fast)CGI или через модули самого nginx-а).
Re[3]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: c-smile Канада http://terrainformatica.com
Дата: 18.10.17 18:45
Оценка:
Здравствуйте, so5team, Вы писали:

S>При этом пользователю будут доступны и restinio::websocket::basic, и restinio::websocket::easy.


S>По остальным вопросам ответим позже.


Спасибо, и ещё с autobahn тестировали?
Re[23]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 18.10.17 19:01
Оценка:
Здравствуйте, so5team, Вы писали:

S>Да, вы "малолетний дебил" (с). Вот и весь конструктивный итог общения с вами в данной теме.


Евгений, то что у вас так сильно бомбит лично меня веселит, но настораживает, что о своем здоровье вы как-то не думаете. Если из-за возгорания, не дай бог вы нас покинете (форум, например, в очередной раз), кто еще будет нас радовать смешными и бесполезными велосипедами?

MTD>>Конечно меняет, nginx серьезный отлаженный продукт созданный опытными людьми, там уже 100 раз обошли все грабли, про которые вы пока даже не в курсе.


S>Еще раз, специально для вас, вдруг дойдет: есть C++ приложение, которое должно выставить наружу REST API или простой HTTP вход. В это приложение будут приходить запросы по протоколу HTTP. И приложению совершенно безразлично, будут ли запросы приходить напрямую от клиента, или же их будет выдавать какой-то load balancer или reverse proxy перед приложением.


Даже студенты начинают подозревать, что в реальном мире все не так просто и сервер, который отлично работал в своей локалке, отчего-то вдруг начинает работать плохо в бою. Но только не прирожденный эксперт по всему на свете.

S>RESTinio решает задачу простого, безболезненного, но эффективного встраивания этого самого HTTP-входа в C++ приложение.


Не уверен, что решает. Пока никаких реальных проектов на вашем фрейворке я не видел, а отсутствие у вас опыта в данной области не может не настораживать.
Re[24]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 08:07
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Евгений, то что у вас так сильно бомбит лично меня веселит, но настораживает, что о своем здоровье вы как-то не думаете. Если из-за возгорания, не дай бог вы нас покинете (форум, например, в очередной раз), кто еще будет нас радовать смешными и бесполезными велосипедами?


Поражает Ваша уверенность в том, что беседу с Вами ведет исключительно Евгений. Между тем, это объясняет Вашу способность судить и о продукте по косвенным факторам, и о причастности к этому продукту людей, отметившихся в этой теме.

Раз уж попытки перейти в конструктивное русло не оказались успешными, то может быть просто прекратите этот троллинг?
Re[25]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 08:16
Оценка:
Здравствуйте, so5team, Вы писали:

S>Поражает Ваша уверенность в том, что беседу с Вами ведет исключительно Евгений.


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

S>может быть просто прекратите этот троллинг?


Я никого не тролю, просто наблюдаю за поциентом — хобби у меня такое, а уж поциент раскрывается сам — на отличненько.
Re[26]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 08:31
Оценка:
Здравствуйте, MTD, Вы писали:

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


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

Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.
Re[26]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 08:40
Оценка:
Здравствуйте, MTD, Вы писали:

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


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


А какой у Вас опыт в этом хобби? Почему Вы считаете, что способны прийти к правильным выводам в результате своих наблюдений? Например, бегло пробежавшись по Вашим комментариям, мне показалось, что многое, о чем Вы говорили в предыдущем комментарии, справедливо и для Вас.
Re[27]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 08:49
Оценка:
Здравствуйте, so5team, Вы писали:

S>Почему Вы считаете, что способны прийти к правильным выводам в результате своих наблюдений?


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

S>мне показалось


Говорят в таком случае в церкви помочь могут, сам не пробовал, за что купил, как говорится.
Re[28]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 08:55
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Типа если надо оппонета дебилом назвать — это зона ответственности одного, а если мудаком — то другого? Да вы там упоролись


Ну, если оппонент на всех производит одинаковое впечатление... Если оппонент тупит как дебил, а ведет себя как мудак, то что уж поделать.

S>>Остается надеяться, что сей простой факт вы сможете понять, в отличии от более сложных вещей, таких как цели и задачи RESTinio.


MTD>А что там сложного?


Ну вот вам-то почему-то не понятно. Хотя, действительно, что там сложного. Тем не менее:

Каково ваше позиционирование фреймворка? Какова его ниша?


И хотя вам все несколько раз объяснили, вы все равно демонстрируете непонимание. Если это не дебилизм, то что, троллинг?
Re[28]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 09:11
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Сделать правильные выводы целью моих наблюдений не является


Именно поэтому Вы решили, что резкость в высказываниях является отражением эмоционального состояния "поциента".

MTD>Говорят в таком случае в церкви помочь могут, сам не пробовал, за что купил, как говорится.


В одном случае Вы занимаетесь деятельностью, не делая никаких выводов о результатах этой деятельности, в другом случае Вы предоставляете информацию, не подкрепленную никаким опытом или фактами.

Безусловно, у нас мог бы получиться конструктивный диалог, и очень жаль что техническая тема скатилась в область троллинга. Мы обязательно сделаем выводы и постараемся в следующий раз более взвешенно отвечать на Ваши вопросы, если конечно же Вы не потеряете интерес к нашей разработке.
Re[2]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 19.10.17 10:01
Оценка:
Здравствуйте, m2l, Вы писали:

m2l>Вы там хоть с MTD и немного подискутировали, но идея сравнения с аналогами здравая. Добавьте в Overview сравнение с 5-7 ближайшими аналогами.


Добавим со временем. В частности, такое сравнение мало кому интересно без результатов бенчмарков. А разработка бенчмарков -- это отдельная большая задача (к тому же не сильно благодарная). Мы начали эту работу некоторое время назад (тыц), сейчас обновляем его для использования с последними стабильными версиями фреймворков и, возможно, добавлением туда еще нескольких.
Re[32]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 10:25
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Завязывайте заливать — слово конструктивный вы трактуете по своему.


Вообще-то имеем полное право, ибо вот что мы просили: "Взгляд со стороны, пожелания, предложения и конструктивная критика приветствуются!"
Автор: so5team
Дата: 17.10.17


Ничего из этого ни в одном из ваших сообщений нет. Вообще. Ну вот совсем.

MTD>Нравится ответ — конструктивный, не нравится — не конструктивный.


Замените "нравится ответ" на "можем ли что-то использовать для улучшения RESTinio" и тогда ваше предложение окажется верным.

Ну а то, что вы упорно продолжаете гадить в тему не имея достаточного (по вашим же словам) опыта, делает картину еще более наглядной.
Re[11]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 10:26
Оценка:
Здравствуйте, Слава, Вы писали:

С>Скажите, а почему вы постоянно суёте этот ваш бжынн.... джын... дрын-дрын-дрын... о, проперделся наконец-то, завёлся, этот ваш nginx джинкающий? Почему не apache httpd, не g-wan?


Вот поэтому:

https://help.dreamhost.com/hc/en-us/articles/215945987-Web-server-performance-comparison

С>Мне в демон на яве написанный, с http-интерфейсом — тоже джын-джынкс запихивать?


Вообще — да, крайне желательно.

С>Как у него с работой на виндах


Я не знаю, сервер на винде не видел ни в одной компании где работал или знаю оттуда людей.

С>Сысоев и по сей день не осилил IOCP использовать?


Название файла как-бы намекает, что осилил, причем как-бы аж с 2003 года:

https://github.com/nginx/nginx/blob/master/src/event/modules/ngx_iocp_module.c

С>Кстати говоря, в системах, работающих 24*7*365, обычно никаких nginx'ов не бывает, они там разве что от бедности заводятся.


Очень любопытно, а что за системы? А то в ICQ и Вконтакте вполне себе живет nginx.
Re[33]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 10:31
Оценка:
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, MTD, Вы писали:


MTD>>Завязывайте заливать — слово конструктивный вы трактуете по своему.


S>Вообще-то имеем полное право


Трактовать слово по своему или заливать? Нет, не имеете. Трактовать слова не надо — для этого словари есть, заливать тоже взрослому человеку не красиво.

S>Замените "нравится ответ" на "можем ли что-то использовать для улучшения RESTinio" и тогда ваше предложение окажется верным.


Я вам начал давать такую информацию, но у вас так пригорело, что вместо того чтобы вежливо попросить пояснить, вы устроили цирк.

S>Ну а то, что вы упорно продолжаете гадить в тему


Пока один в туалет отошел, сел другой? Или в голове рокировка? Вы же сами говорили, что черный PR — это ок, а теперь обида.
Re[34]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 11:08
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>>>Завязывайте заливать — слово конструктивный вы трактуете по своему.


S>>Вообще-то имеем полное право


MTD>Трактовать слово по своему или заливать? Нет, не имеете. Трактовать слова не надо — для этого словари есть, заливать тоже взрослому человеку не красиво.


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

Вот так обстоят дела. Нравится ли вам это или нет. Считаете ли вы, что мы трактуем что-то не так или заливаем -- это не имеет значения. Но дела обстоят именно так. Мы даем оценку тому, что вы говорите. Мы.

S>>Замените "нравится ответ" на "можем ли что-то использовать для улучшения RESTinio" и тогда ваше предложение окажется верным.


MTD>Я вам начал давать такую информацию,


Не было такой информации. Было вот что:

> Это не совсем то, что требуется в продакшене.

> это все равно не позволит отличить честного пользователя с модемом от злоумышленника.
> И это только одна из множества потенциальных проблем

С эпическим сливом:

> Сначала, хотел написать развернутый ответ, потом подумал, что у меня тоже опыта маловато


Даже вот это ваша, якобы конструктивная точка зрения:

> Почему бы просто не взять nginx — отлаженный сервер, который уже умеет все что нужно и делает это хорошо, надо только написать конфигурацию. Далее, пусть он сам работает с https, защищает от всяких нежданчиков и перенаправляет http трафик на нужный порт, а там уже пусть будет ваш сервер. В принципе удобный роутинг с асинхронными обработчиками — good enough, тут я вижу место для вашего фреймворка


не несет для RESTinio никакой полезной информации, о чем вам уже неоднократно сообщали.

Ну а это уже вообще эпично:

> Я даже не смотрел. Что у вас за мания величия, будто все только и жаждут покопаться в том, что вы там произвели в муках.


Т.е. вы полезли "с конструктивом" в тему, с которой даже не соизволили ознакомиться.

MTD> но у вас так пригорело, что вместо того чтобы вежливо попросить пояснить, вы устроили цирк.


Да пока что горит разве что у вас.
Re[36]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 11:30
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Я тоже даю вам оценку. Я.


Это понятно. Вы этим здесь очень давно занимаетесь. Пользы для RESTinio от этого сколько?

MTD>На той стадии я просто задал вопросы о продукте про который ничего не знаю, если бы я заинтересовался полез бы смотреть, но после того, как у вас полыхнуло факелом, понял — очередное творение непризнанного гения.


А покажите пальцем, где именно у кого-то что-то полыхнуло? Ссылку на сообщение, например.
Re[38]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 19.10.17 11:53
Оценка:
Здравствуйте, MTD, Вы писали:

S>>Это понятно. Вы этим здесь очень давно занимаетесь. Пользы для RESTinio от этого сколько?


MTD>Вам видней, что касается моего мнения — думаю, что никакой,


И когда мы говорим, что конструктива в ваших словах ноль, то оказывается, что мы врем и наговариваем. ok.jpg

S>>А покажите пальцем, где именно у кого-то что-то полыхнуло? Ссылку на сообщение, например.


MTD>Началось все здесь:
Автор: so5team
Дата: 18.10.17


MTD>Вместо того, чтобы вежливо начать задавать вопросы и получать ответы, обиделся как дитя:


MTD>

MTD>Спасибо за заботу, но можно ли высказывать свои мысли более конструктивно?


Re[39]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: MTD https://github.com/mtrempoltsev
Дата: 19.10.17 12:09
Оценка:
Здравствуйте, so5team, Вы писали:

MTD>>Вам видней, что касается моего мнения — думаю, что никакой,


S>И когда мы говорим, что конструктива в ваших словах ноль, то оказывается, что мы врем и наговариваем. ok.jpg


Давно уже, как же до вас медленно доходит. Диалог наш стал неконструктивен буквально со второго вашего ответа.

S>


Истерика? Водички выпей
Re[2]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: so5team https://stiffstream.com
Дата: 19.10.17 15:57
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>Нет привязки к boost или другой сетевой библиотеке, на нижнем уровне лежит класс TCP сервера, реализованный на epoll, но можно подменить что угодно своё с похожим API.


Т.е. из коробки работает только под Unix-ами, правильно?
Re[2]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Websock с
От: so5team https://stiffstream.com
Дата: 19.10.17 20:37
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>И это про ws: или про wss: (secured web sockets) тоже?


Да, wss тоже поддерживается. Для возможности протестировать мы добавили пример websocket_wss.
Re[3]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: pkl  
Дата: 19.10.17 21:30
Оценка:
Здравствуйте, so5team, Вы писали:

S>Здравствуйте, pkl, Вы писали:


pkl>>Нет привязки к boost или другой сетевой библиотеке, на нижнем уровне лежит класс TCP сервера, реализованный на epoll, но можно подменить что угодно своё с похожим API.


S>Т.е. из коробки работает только под Unix-ами, правильно?

Да.
Но у windows есть какие-то адаптеры, я слышал даже ubuntu внутри винды есть.
https://habrahabr.ru/post/280560/
Да и как-то в целом винда как сервер не так уж критична, всё больше в линуксах народ в мире серваки делает, поэтому затачиваться под epoll можно с настолько чистой совестью, что вода в байкале позавидует!
Ну и написать свой классик под заданный интерфейс https://github.com/pavelkolodin/fir/blob/master/net/tcp_server_epoll.h несложно.
Re[4]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: so5team https://stiffstream.com
Дата: 20.10.17 05:36
Оценка:
Здравствуйте, pkl, Вы писали:


S>>Т.е. из коробки работает только под Unix-ами, правильно?


pkl>Да.

...
pkl>Ну и написать свой классик под заданный интерфейс https://github.com/pavelkolodin/fir/blob/master/net/tcp_server_epoll.h несложно.

Вопрос задавался как бы с позиции потенциального пользователя, которому нужна кросс-платформенность "из коробки". Далеко не все возьмут чужой инструмент, если для него нужно еще что-то самостоятельно допиливать. Мы как раз делали RESTinio для того, чтобы допиливать ничего не нужно было.
Re[2]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: MTD https://github.com/mtrempoltsev
Дата: 20.10.17 06:31
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>Входной HTTP/1.1 протокол парсится с минимальным кол-вом копирований данных.

pkl>Распарсенный HTTP представляет собой просто набор указателей на разные места во входном буфере, куда данные залетели изначально.
pkl>Нет привязки к boost или другой сетевой библиотеке, на нижнем уровне лежит класс TCP сервера, реализованный на epoll, но можно подменить что угодно своё с похожим API.
pkl>Написано по мотивам внутренностей nginx. Минимум new/delete, всё переиспользуется.

Крайне интересно звучит. Какие планы по развитию или чисто just for fun? Обработчики запросов где и как обрабатываются?
Re[4]: fir: другая HTTP/WebSocket либа с zero-copy внутри бе
От: uzhas Ниоткуда  
Дата: 23.10.17 05:54
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>В целом fir надо немного отрефакторить, там часть написана когда я ещё малолетним дебилом был — под c++14 надо причёсывать, про кеш CPU подумать, lock-free внедрить, мьютексов дурацких повыкидывать если есть...


прежде всего автотесты нужны.
автотесты — это программки, которые говорят OK/FAIL при запуске. а те тесты, что в репе лежат, лучше удалить
RESTinio-0.4.3 с поддержкой sendfile
От: so5team https://stiffstream.com
Дата: 06.03.18 11:24
Оценка:
Мы обновили свою легковесную C++14 библиотеку для встраивания HTTP-входа в C++ приложения до версии 0.4.3.

Основные изменения в RESTinio со времени последнего анонса:

Библиотека живет на bitbucket-е (https://bitbucket.org/sobjectizerteam/restinio-0.4) c зеркалом на github-е (https://github.com/Stiffstream/restinio), документация доступна у нас на сайте (https://stiffstream.com/en/docs/restinio/0.4/). Распространяется под BSD-3-CLAUSE лицензией.

Мы создавали RESTinio для того, чтобы иметь возможность асинхронной обработки входящих запросов в случаях, когда для формирования ответа нужно обратиться к медленно отвечающему стороннему сервису. Иногда обращения к таким сторонним сервисам нужно делать посредством HTTP. Для таких целей широко используется Си-шная библиотека libcurl. Подружить асинхронную обработку входящих запросов посредством RESTinio с асинхронной обработкой исходящих запросов посредством libcurl можно несколькими способами. Подробнее эту тему мой коллега раскрыл в небольшой серии статей: часть 1, часть 2, часть 3.

Развитие RESTinio продолжается. У нас есть свои идеи о том, что можно было бы добавить в следующих версиях библиотеки. Но нам было бы очень интересно услышать пожелания от тех, кто смотрел на RESTinio, но еще не начал её использовать:
Отредактировано 06.03.2018 16:36 so5team . Предыдущая версия .
Re: RESTinio-0.4.5.1 с портом под vcpkg
От: so5team https://stiffstream.com
Дата: 08.05.18 11:41
Оценка:
RESTinio обновился до версии 0.4.5.1.

Что изменилось:

Библиотека по-прежнему живет на bitbucket-е (https://bitbucket.org/sobjectizerteam/restinio-0.4) c зеркалом на github-е (https://github.com/Stiffstream/restinio), документация доступна у нас на сайте (https://stiffstream.com/en/docs/restinio/0.4/). Распространяется под BSD-3-CLAUSE лицензией.
Re: Пример проекта, который использует RESTinio
От: so5team https://stiffstream.com
Дата: 09.07.18 11:34
Оценка:
Мы написали Shrimp небольшой демо-проект, в котором, среди всего прочего, используется и RESTinio. На хабре можно почитать достаточно подробную статью о нем: Shrimp: масштабируем и раздаем по HTTP картинки на современном C++ посредством ImageMagic++, SObjectizer и RESTinio.

Если совсем коротко, то Shrimp -- это небольшой сервис, который раздает отмасштабированные картинки из заданной директории.

Репозиторий на bitbucket: https://bitbucket.org/sobjectizerteam/shrimp-demo
Зеркало на github: https://github.com/Stiffstream/shrimp-demo
Re[2]: RESTinio 0.3: header-only C++14 библиотека с HTTP/Webso
От: so5team https://stiffstream.com
Дата: 09.07.18 11:48
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>1. Каково ваше позиционирование фреймворка? Какова его ниша?


Вот здесь
Автор: so5team
Дата: 09.07.18
нагляднее про позиционирование и возможное применение. Совсем коротко напомним: RESTinio развивается как инструмент для прикручивания REST API к уже существующему C++ному коду. Особенно, если прикладная обработка запросов занимается сотни/тысячи/десятки тысяч миллисекунд (как в задачах по обработке больших объемов данных) и, поэтому нужен асинхронный HTTP-сервер, который не будет блокировать IO-контексты на время прикладной обработки запроса.

Еще поднималась тема nginx-а перед приложением с RESTinio внутри. Этот сценарий выставления REST API наружу настолько очевиден, что его не было смысла даже обсуждать. Как раз для демо-страничка для shrimp-а подобным образом и организована: наружу смотрит nginx с SSL-ем, а за ним стоит C++ное приложение с RESTinio внутри.
Re[2]: Пример проекта, который использует RESTinio
От: so5team https://stiffstream.com
Дата: 17.08.18 09:16
Оценка:
Здравствуйте, so5team, Вы писали:

S>Если совсем коротко, то Shrimp -- это небольшой сервис, который раздает отмасштабированные картинки из заданной директории.


S>Репозиторий на bitbucket: https://bitbucket.org/sobjectizerteam/shrimp-demo

S>Зеркало на github: https://github.com/Stiffstream/shrimp-demo

Если кому-то интересно, то ссылки еще на две статьи, которые рассказывают о дальнейшем развитии этого демо проекта:

"Развиваем Shrimp: контролируем параллельные запросы, логируем через spdlog и еще…"
"Делаем Shrimp еще полезнее: добавляем перекодирование картинок в другие форматы"
Re[2]: RESTinio 0.4.1 released!
От: Igore Россия  
Дата: 17.08.18 09:46
Оценка:
Здравствуйте, so5team, Вы писали:

S> Поддержка Boost::ASIO. Boost::ASIO, начиная с версии 1.66, включает в себя изменения, сделанные ранее в stand-alone версии ASIO, поэтому стало возможным добавить интеграцию с Boost версией ASIO, которую мы собираемся поддерживать и в дальнейшем. Подробнее смотрите в документации.


А Boost.Beast не смотрели, можете что нибудь рассказать, про сравнение с этой библиотекой.
Re[2]: fir: другая HTTP/WebSocket либа с zero-copy внутри без п
От: chaotic-kotik  
Дата: 20.08.18 12:06
Оценка:
Здравствуйте, pkl, Вы писали:

pkl>В протоколе WebSocket zero-copy соблюдено плохо, можно оптимизировать.


zero-copy в смысле kernel bypass используется?
Re: Re: RESTinio 0.4.8 released!
От: so5team https://stiffstream.com
Дата: 21.08.18 10:51
Оценка:
Очередная итерация в развитии RESTinio.

Что нового в этой версии:

Библиотека живет на bitbucket-е (https://bitbucket.org/sobjectizerteam/restinio-0.4) c зеркалом на github-е (https://github.com/Stiffstream/restinio).

Документация доступна у нас на сайте (https://stiffstream.com/en/docs/restinio/0.4/). А также появилась doxygen документация: https://stiffstream.com/en/docs/restinio/0.4-api/

Распространяется под BSD-3-CLAUSE лицензией.

PS Ранее были выпущена, но здесь не публиковалась v.0.4.7
Re[2]: Наглядное сравнение с Boost.Beast
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.09.18 05:37
Оценка:
Здравствуйте, so5team, Вы писали:

S>Автор Boost.Beast будет делать доклад на CppCon-2018 для которого он подготовил небольшой пример на базе Boost.Beast-а.

S>Мы, для сравнения выразительности и удобства использования двух библиотек, сделали тот же самый пример, но на базе RESTinio:

Осталось рассказать об этом на CppCon
Re[3]: Наглядное сравнение с Boost.Beast
От: so5team https://stiffstream.com
Дата: 14.09.18 07:11
Оценка:
Здравствуйте, kaa.python, Вы писали:

S>>Автор Boost.Beast будет делать доклад на CppCon-2018 для которого он подготовил небольшой пример на базе Boost.Beast-а.

S>>Мы, для сравнения выразительности и удобства использования двух библиотек, сделали тот же самый пример, но на базе RESTinio:

KP>Осталось рассказать об этом на CppCon


Пока участвовать в заграничных конференциях у нас не получается по ряду более чем объективных причин. Поэтому пока распространяем информацию посредством Интернета.
Re: v.0.5.0: возможность работы с кастомными версиями http-parser
От: so5team https://stiffstream.com
Дата: 04.06.19 09:49
Оценка:
Со времени последнего анонса в RESTinio было исправлено несколько ошибок и было добавлено несколько новых фич. В частности, в версии 0.5.0 добавлена возможность работы RESTinio с кастомизированными версиями библиотеки http-parser. Это позволяет реализовать обработку в RESTinio нестандартных HTTP-методов.

Допустим, что следует написать REST-сервис, который должен реагировать на нестандартные методы ENCODE и DECODE. Для этого потребуется:


После этого можно будет использовать константы http_encode и http_decode при работе с RESTinio, например:
auto make_request_handler() {
    auto router = std::make_unique< restinio::router::express_router_t<> >();

    router->add_handler(http_encode, "/data", [](auto req, auto params) {...});
    router->add_handler(http_decode, "/data", [](auto req, auto params) {...});
    ...
    return router;
}


Примечание. Для реализации этой функциональности из RESTinio был удален тип http_method_t, а вместо него введен тип http_method_id_t. Если в вашем коде использовался http_method_t, то при обновлении на v.0.5.0 вам придется внести изменения в свой код.

Также в версии 0.5.0 был удален ряд вещей, которые были помечены как "deprecated" в предыдущих версиях RESTinio.

Сам RESTinio живет на BitBucket-е с зеркалом на GitHub.

Документацию можно найти здесь, а здесь находится сгенерированный Doxygen-ом справочник по API.

В общем-то, в последнее время в RESTinio попадает то, о чем просят пользователи. Так что если вы хотите увидеть что-то в RESTinio, то дайте нам знать.
Re[3]: v.0.5.0: возможность работы с кастомными версиями http-parser
От: so5team https://stiffstream.com
Дата: 04.06.19 16:28
Оценка:
Здравствуйте, Denis Ivlev, Вы писали:

S>>Со времени последнего анонса в RESTinio было исправлено несколько ошибок


DI>Прочитал как "наделано ошибок". Простите)


Да вы своим ослоумием и "полезными" комментариями здесь резко выделяетесь, так что продолжайте. Публике нужны развлечения.
Re[5]: v.0.5.0: возможность работы с кастомными версиями http-parser
От: so5team https://stiffstream.com
Дата: 04.06.19 16:44
Оценка:
Здравствуйте, Denis Ivlev, Вы писали:

DI>А что ты так завелся?


Кто завелся?

DI>Ты же искал своей поделке внимание — ну так вот оно, что не так?


Идиотский комментарий от человека, уже успевшего себя зарекомендовать специфическим образом.

В двух словаях: не каждый фидбэк одинаково полезен.

DI> кстати, интересно за "ослоумие" тебя забанят или ты и есть специальный шут, которому позволительно хамить?


А вы пожалуйстесь модератору, посмотрите, что получится.
Re: RESTinio 0.6.1
От: so5team https://stiffstream.com
Дата: 20.11.19 06:07
Оценка:
Выпущена новая версия RESTinio.

Со времени последнего анонса в RESTinio произошли следующие изменения:

* начато добавление средств для парсинга содержимого HTTP-полей. Пока поддерживается всего несколько HTTP-полей, но эта работа будет продолжена в будущих версиях RESTinio;
* добавлены вспомогательные инструменты для работы с multipart телами запросов;
* добавлены вспомогательные инструменты для реализации загрузки файлов на сервер;
* в состав штатных примеров добавлен file_upload;

Разработка RESTinio теперь ведется только на GitHub, оттуда же можно забрать свежую версию. RESTinio-0.6.1 так же доступна через Conan и vcpkg.

Документация по версии 0.6 доступна здесь (руководство программиста) и здесь (справочник по API).

Мы внимательно прислушиваемся к замечаниям и просьбам пользователей. Например, функциональность для поддержки file upload появилась в результате такой просьбы. Так что если вам чего-то не хватает в RESTinio, то дайте нам об этом знать. Либо через Issues на GitHub-е, либо через Google-группу.
Re: RESTinio 0.6.7.1
От: so5team https://stiffstream.com
Дата: 12.05.20 16:59
Оценка:
Выпустили очередное обновление для RESTinio. В версии 0.6.7.1, кроме нескольких баг-фиксов, добавились:

Дополнительные опции для настройки CMake-сборок: RESTINIO_USE_EXTERNAL_EXPECTED_LITE, RESTINIO_USE_EXTERNAL_OPTIONAL_LITE, RESTINIO_USE_EXTERNAL_STRING_VIEW_LITE, RESTINIO_USE_EXTERNAL_VARIANT_LITE.

Вспомогательная функция run_async для упрощения запуска RESTinio-сервера на отдельном пуле потоков или отдельной рабочей нити:

int main() {
   auto server = restinio::run_async(
      // Задаем io_context для использования.
      // В данном случае у сервера будет собственный io_context.
      restinio::own_io_context(),
      // Параметры для HTTP-сервера.
      restinio::server_settings_t{}
         .address("127.0.0.1")
         .port(8080)
         .request_handler(...),
      // Размер пула рабочих нитей для HTTP-сервера.
      16);
   // Если оказались здесь и run_async не выбросил исключения,
   // значит HTTP-сервера запущен.

   ... // Какие-то другие действия.

   // Здесь нет необходимости останавливать HTTP-сервер
   // вручную, это будет сделано автоматически в
   // деструкторе переменной 'server'.
}


Добавлены новые вспомогательные функции для работа значений HTTP-заголовков. На этот раз заголовков Authorization и Proxy-Authorization.

Так же добавлены вспомогательные функции для извлечения из Authorization параметров для Basic и Bearer аутентификаций. Например, для Basic-аутентификации:

#include <restinio/all.hpp>
#include <restinio/http_field_parser/basic_auth.hpp>
...
auto on_request(const restinio::request_handle_t & req) {
   using namespace restinio::http_field_parsers::basic_auth;
   const auto auth_params = try_extract_params(*req,
         restinio::http_field::authorization);
   if(auth_params) { // Параметры успешно извлечены.
      if(is_valid_user(auth_params->username, auth_params->password)) {
         ...
      }
   }
   ...
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.