The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен Cutelyst 1.0.0, фреймворк для разработки web-приложений на C++ и Qt

13.11.2016 21:58

После трёх лет разработки представлен первый стабильный релиз фреймворка Cutelyst, предоставляющего средства для разработки web-приложений с использованием технологий Qt и MVC-парадигмы в стиле Perl-фреймворка Catalyst. В выпуске Cutelyst 1.0.0 объявлено о стабилизации API и ABI, которые в дальнейшем будут развиваться с обеспечением обратной совместимости. Код проекта написан на языке C++ и распространяется под лицензией LGPLv2+.

Ключевым достоинством Cutelyst является возможность быстро создавать высокопроизводительные web-приложения на языке C++, используя единую кодовую базу с уже существующими проектами. Например, для работы в виде web-приложения можно адаптировать программу, написанную для настольных или мобильных систем. Cutelyst имеет модульную структуру и позволяет подключать различные серверные HTTP-движки и шаблонизаторы. Например, Cutelyst может использовать как встроенный HTTP-сервер Cutelyst-WSGI, так и работать под управлением внешних серверов при помощи протоколов FastCGI или uWSGI.

Для отделения кода C++ от HTML предлагается использовать шаблонизаторы ClearSilver и Grantlee (синтаксис, как в Django) или генерировать вывод в формате JSON. Загрузка данных в формате JSON автоматически транслируется в QJsonDocument. При помощи дополнительных плагинов предоставляются готовые средства для управления сеансами, аутенитификации (с поддержкой PBKDF2) и управления доступом (RoleACL). Поддерживается обработка запросов в асинхронном режиме. Для упрощения разработки приложений предоставляются средства для интеграции с QtCreator.

  1. Главная ссылка к новости (http://www.cutelyst.org/2016/1...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45487-qt
Ключевые слова: qt, web, cutelyst
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (53) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Admino (ok), 23:06, 13/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Кто-нибудь уже собрал Qupzilla для cutelyst?
     
  • 1.2, BlackRaven86 (ok), 23:31, 13/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Отлично! Различные наработки для разработки web-приложений на Qt были уже давно. Похоже, теперь дело выходит на новый уровень.
     
  • 1.3, Dragonic (ok), 23:35, 13/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    В идеале бы еще и QML полноценно в веб перенести
     
     
  • 2.13, Аноним (-), 07:30, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://qmlweb.github.io/
     
     
  • 3.55, Аэропорт (?), 18:52, 19/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > https://qmlweb.github.io/

    Этому далеко ещё до полноценности

     

  • 1.4, Аноним (-), 00:50, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Ждем ассемблер, а то С++ не достаточно сурово для веба.
     
     
  • 2.6, Акроним (?), 01:45, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Для ассемблера вряд ли дождемся, но для C есть неплохие фреймворки: lwan и G-wan. Очень быстро молотят Json. Так что, для отдельных вещей, чтобы пуляли по максимуму, можно использовать.
     
     
  • 3.7, Аноним (-), 02:50, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    JSMN лучший по скорости парсер json в добавок к G-wan. Iwan не нашёл, поделись ссылкой.
     
     
  • 4.8, Аноним (-), 04:23, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    так Lwan же, а не iwan
     
  • 3.49, Масяня (?), 20:24, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    WebAssembly. Coming Soon. Feb 2017.

    Скоро на всех экранах веб-макак.

     
  • 2.20, YetAnotherOnanym (ok), 11:22, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Древесная лягушка с Вами не согласна.
     

  • 1.5, Акроним (?), 01:41, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Очень интересно будет взглянуть на результаты 14 раунда TechEmpower, который они планируют провести. Тогда все станет ясно. У них уже есть неплохой конкурент - Treefrog.

    А по поводу C++ для Web. Для C++ программиста, который уже по всем граблям сходил, на C++ писать Web - одно удовольствие.

     
     
  • 2.10, KonstantinB (ok), 04:54, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С treefrog этот cutelyst сравнивать еще рано, там уровень model вообще пока что отсутствует. А это самая небанальная часть.
     
     
  • 3.22, Акроним (?), 11:50, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > С treefrog этот cutelyst сравнивать еще рано, там уровень model вообще пока
    > что отсутствует. А это самая небанальная часть.

    Да и судя по https://www.techempower.com/benchmarks/previews/round13 , где Treefrog поднакачался и пульнул соревноваться с urlib, ему будет очень нелегко на него равняться =)

     
  • 2.11, aospan (ok), 06:31, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    13й раунд еще вроде preliminary results:
    https://www.techempower.com/benchmarks/previews/round13/
     
  • 2.12, Джо (?), 06:53, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Да, но зависимость от Qt + LGPL = досвидос
     

  • 1.9, Аноним (-), 04:46, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Разработчик Cutelyst - Daniel Nicoletti - тот еще знатный бракодел.
    Формула успеха:
    1) я придумал что-то новое и крутое, пока что это только proof of concept, хаха
    2) о, нужная вещь, давайте сразу берем в апстрим
    3) слишком много багов
    4) забросить проект и goto 1

    KPackageKit/apper
    print-manager
    colord-kde
    sessionK

    многим эти названия не скажут решительно ничего, но КДЕ-шники, возможно, поймут мою боль.

     
     
  • 2.33, Ilya Indigo (ok), 15:22, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > KPackageKit/apper

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

     
     
  • 3.50, Led (ok), 21:04, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Если забыть снести это при установки openSUSE, вместе с PA и NM, то работать на этой системе трудно.

    Как раз в openSUSE PA и NM отключаются элементарно, можно даже несколькиими кликами мышкой, так что их можно даже не "сносить".

     
  • 2.42, Аноним (-), 17:40, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > KPackageKit/apper
    > print-manager
    > colord-kde
    > sessionK
    > многим эти названия не скажут решительно ничего, но КДЕ-шники, возможно, поймут мою
    > боль.

    По уровню:
    http://s4.pikabu.ru/post_img/2015/11/01/12/1446410235_1190114200.jpg
    тоже вроде как стильно и все такое, но с практической точки зрения ...

     
     
  • 3.44, Аноним (-), 18:33, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    классная пикча. вся сущность современного веба в одной картинке.
     

  • 1.14, Аноним (-), 08:13, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    сиплюсплюс головного мозга
    заболевание видимо настолько сильное
    что поциент деградирует и не способен осилить нормальные технологии, предназначеные для web
     
     
  • 2.16, anonymous (??), 09:04, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это нода.жс что ли нормальная технология?
     
     
  • 3.18, trdm (ok), 10:51, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    то был глас пыхпышника. Ниосилятора плюсов.
     
     
  • 4.19, Аноним (-), 11:11, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Пока ты будешь ашвабаждать память, появится павел дуров и быстренько напишет годный ( = денежный) стартапчик на пыхе. А ты в это время все еще будешь ашвабаждать память.
     
     
  • 5.21, Акроним (?), 11:47, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Мне кажется, для того, чтобы сравнивать что-то с С++, нужно помимо чего-то еще знать и С++. В С++ уже давно есть инструменты для автоматического освобождения памяти. Тем более в Qt это вообще заложено в структуру фреймворка.
     
     
  • 6.24, Аноним (-), 13:03, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Назови преимущества С++ перед пыхом/нодежс в условиях веба. Именно в плане обработки вводимых пользователем форм и прочих штук вроде выборки из базы и отображения записей. (А как правило только это и требуется.) С точки зрения бизнеса в том числе. (Чем окупится время, которое требуется для С++ в гораздо большем объеме, чем для пыха/нодежс? Как быть с конкурентами, которые напишут аналогичное на пыхе/нодежсе за пару месяцев, а не за пару кварталов? Как быть с поддержкой кода? -- пыхо/нодежс-разрабов в веб-девелопменте существенно больше, чем С++-ников)

    Давай простейший пример возьмем: мне приходит строка в виде JSON. Мне надо извлечь из нее значение свойства. На JS это можно сделать за 3 секунды: JSON.parse(string).property. Как это сделать за 3 секунды на С++ и в одну строку?

     
     
  • 7.26, Аноним (-), 13:25, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не нужно спорить с хелоуворлдщиками, они об обязанностях перед заками и о конкурентах знать не знают.
     
  • 7.27, Акроним (?), 13:49, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На одной и той же машине, сериализация того же самого JSON:
    Lwan (С): 479,281 rps
    Treefrog (С++): 298,740 rps
    PHP: 43,759 rps

    Ответ на ваш вопрос:
    QJsonDocument::fromJson(string).object()["property"]; // только это будет в (298 740/43 759 =) 6,83 раза быстрее.

    Выборка из БД:
    TSqlQuery q; q.prepare("SELECT * FROM table WHERE a = ?"); q.addBind("Blah");
    QVariantList l;
    if (q.exec()) {
      while (q.next()) { QVariantMap m; m["c1"] = q.value(0); m["c2"] = q.value(1); l << m; }
    }
    renderJson(l);

     
  • 7.28, YetAnotherOnanym (ok), 14:01, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Чем окупится время, которое требуется для С++ в гораздо большем объеме

    Тем, что у Вас не украдут десяток-другой миллионов учётных записей?

     
  • 7.29, Crazy Alex (ok), 14:07, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Наивный мальчик. Всё хорошо у ноды с пыхом... до появления серьёзной бизнес-логики. А дальше - либо валить на джаву, либо, может, правда плюсы подтянутся.

    Прокладку между базой и джаваскрипт-мордой - пофиг на чём писать, это да - где скорости не хватит - кэши спасут, всё равно 95% нагрузки на них держится.

     
  • 7.43, Аноним (-), 18:33, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Давай простейший пример возьмем: мне приходит строка в виде JSON. Мне надо извлечь из нее значение свойства. На JS это можно сделать за 3 секунды: JSON.parse(string).property. Как это сделать за 3 секунды на С++ и в одну строку?

    FTR:

    Json::Value value; Json::Reader().parse(string, value); value["property"];

    Чуть сложнее, но вполне себе.

     
  • 7.48, trdm (ok), 19:14, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Назови преимущества С++ перед пыхом/нодежс в условиях веба.

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

     
  • 5.23, Аноним (-), 12:51, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Twitter - руби, например, изначально был.
    Одноклассники - C#.
    Bootcamp - Ruby.
    Dropbox - Python.

    Ну-ка, ну-ка?

     
     
  • 6.25, Аноним (-), 13:04, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Перечисленные тобой языки как раз хороши для веба. А вот С++ изначально под него не адаптирован.
     
     
  • 7.31, Crazy Alex (ok), 14:23, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Перечисленные тобой языки как раз хороши для веба. А вот С++ изначально
    > под него не адаптирован.

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

    Вообще, похороны PHP/JS/Python в вебе - дело ближайших пяти лет максимум. Просто потому, что сложность задач растёт, и ей разве что питон кое-как может соответствовать - так у него со скоростью беда, плюс на больших проектах статическая типизация  и прочая "бюрократия"- необходимость. С другой стороны - C++11/14, Go, возможно Rust стали попроще, чем старые плюсы, шустры и более удобны для больших проектов. И, скорее всего, через год на них вполне можно будет писать для браузера. Или какой-то новый язык придёт, но то, во что превращаются в больших объёмах PHP и JS - это как на известной картинке - гордая конструкиця из велосипедов и костылей.

     
     
  • 8.37, Аноним (-), 15:31, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ты предпочитаешь готовый набор инструментов или компоненты для изготовления инст... текст свёрнут, показать
     
     
  • 9.40, Crazy Alex (ok), 17:21, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну вот его и делают Для тех же Ruby, PHP и прочего тоже фреймворки кто-то писал... текст свёрнут, показать
     
  • 6.30, Crazy Alex (ok), 14:10, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Twitter - руби, например, изначально был.
    > Одноклассники - C#.
    > Bootcamp - Ruby.
    > Dropbox - Python.
    > Ну-ка, ну-ка?

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


     
  • 5.34, Admino (ok), 15:23, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дай угадаю, ты никто не писал на Qt.
     
  • 5.41, trdm (ok), 17:33, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >  Пока ты будешь ашвабаждать память, появится павел дуров и быстренько напишет годный ( = денежный) стартапчик на пыхе. А ты в это время все еще будешь ашвабаждать память.

    я её с 2011 года освобождаю. Никак не освобожу...

     

  • 1.17, Аноним (-), 09:19, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересно, а в нем webview работает.
    Можно написать браузер и запустить в браузере))
     
     
  • 2.38, Аноним (-), 15:32, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    См. GTK+ Broadway.
     

  • 1.32, Аноним (-), 14:39, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Про KDE Neon кто-нить запостит новость или нет? Где админы?
    http://jriddell.org/2016/11/14/upgrade-for-kde-neon-security-issue/
     
     
  • 2.35, Ilya Indigo (ok), 15:25, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Про KDE Neon кто-нить запостит новость или нет? Где админы?
    > http://jriddell.org/2016/11/14/upgrade-for-kde-neon-security-issue/

    Всё в ваших руках. Создание новостей доступно даже для анонимов.

     

  • 1.36, Ilya Indigo (ok), 15:28, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Это что получается, теперь можно писать сайты на C++ и через FastCGI подключать http-серверам?
    Я правильно понимаю?
     
     
  • 2.39, Акроним (?), 16:04, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Можно через uWSGI (HTTP, FastCGI, uWSGI...) или вообще обойтись без http-сервера, использовав Internal HTTP. Сам исполняемый файл становится http-сервером.
     
  • 2.51, Аноним (-), 22:50, 14/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Давно можно через wt.
     

  • 1.45, Аноним (-), 18:46, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Было:
    Ща, допишу и залью
    Становится:
    Ща, допишу, скомпилю, залью
     
  • 1.47, Аноним (-), 19:08, 14/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Смотрю, тут все как обычно. Срачи php vs. anything. Ребят, если вы не знаете ЗАЧЕМ используют C/C++ в вебе, а ПОЧЕМУ не используют, то идите попейте чайку.
    Проект, конечно, интересный, однако, весьма странно, что поднялся тут ажиотаж, когда C/C++ веб-серверов, веб-библиотек, веб-недогенераторов было написано овердофига. А тут новость и вауля начали сраться как в нулевых =)
     
     
  • 2.53, Crazy Alex (ok), 16:28, 15/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что тут есть надежда на написание веб-приложений на чём-то вменяемом - то есть Qt.
     
     
  • 3.54, Конь (?), 19:03, 15/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Пишите на Clojure и будет вам счастье.
     

  • 1.52, Аноним (-), 12:03, 15/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    WAI / Warp - наше фсё!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру