今まで C++ でちょっとしたウェブアプリを作る際は crow という micro-framework を使ってきました。
GitHub - ipkn/crow: Crow is very fast and easy to use C++ micro web framework (inspired by Python Flask)
How to Build If you just want to use crow, copy amalgamate/crow_all.h and include it. Requirements C...
https://github.com/ipkn/crow
ヘッダオンリーで使えてとても便利だったのですが、boost に依存している点があまり好きじゃなかったのと、最近 crow の開発が止まり最新の boost でビルド出来なくなってしまったので、自分で作る事にしました。
GitHub - mattn/clask: Web micro-framework like flask in C++.
# include " clask/core.hpp " int main () { auto s = clask::server (); s. GET ( " / " , [](clask::req...
https://github.com/mattn/clask
C++ から flask ぽく使える事を目指しました。ヘッダオンリーで使えます。HTTP ヘッダを解析する所だけ kazuho さんの picohttpparser を使わせて頂いています。
#include "clask/core.hpp"
int main() {
auto s = clask::server();
s.GET("/", [](clask::request& req) {
return "OK!";
});
s.GET("/foo", [](clask::response& resp, clask::request& req) {
resp.set_header("content-type", "text/html");
resp.write("he<b>l</b>lo");
});
s.run();
}
boost にも依存していませんし Windows でも問題なく動作します。ただしコンパイルには C++17 をサポートしているコンパイラが必要です。keep-alive に対応したマルチスレッドなウェブサーバなので、静的な2文字("OK)くらいのコンテンツだと 70000req/sec くらい出ます(ログ出力を無効にした場合/Ryzen 5)。まだまだ実験的ですが、幾らかアプリケーションが作れるまで来たので、今後簡単な C++ のウェブアプリは clask を使って行こうと思っています。ドキュメントが皆無なのですが、これから整備していく予定です。使用例を5つほど用意していますので、興味のある方は pull-request 頂けると嬉しいです。
clask/example at master · mattn/clask · GitHub
Explore GitHub → Learn & contribute Topics Collections Trending Learning Lab Open source guides...
https://github.com/mattn/clask/tree/master/example