中文版入口
Rapide, efficace⌛️ et simple ? Framework micro web asynchrone c++ basé sur le workflow C++ .
C++ Workflow est un moteur de calcul parallèle et de réseau asynchrone C++ léger.
Si vous avez besoin de performances et d’une bonne productivité, vous allez adorer wfrest .
Pour plus d’informations, vous pouvez d’abord consulter les discussions :
https://github.com/wfrest/wfrest/discussions
Astuces : Étant donné que dans g++ 4.9 et la version précédente, lambda ne peut pas capturer de modèles variadiques, nous vous demandons de mettre à niveau votre version g++ vers 5.0 et supérieure.
Si vous êtes sur Ubuntu 20.04, vous pouvez les installer par commande :
apt-get install build-essential cmake zlib1g-dev libssl-dev libgtest-dev -y
Pour plus de détails, vous pouvez voir ici : détails des exigences
git clone --recursive https://github.com/wfrest/wfrest
cd wfrest
make
sudo make install
Pour tester :
make check
Par exemple :
make example
Si vous souhaitez utiliser xmake pour construire wfrest, vous pouvez voir le document de construction xmake
Utilisez dockerfile, le sous-répertoire Dockerfile locate /docker
du référentiel de code source racine.
docker build -t wfrest ./docker/ubuntu/
Si vous utilisez podman
, vous pouvez également le construire. et testé sous Ubuntu 20.04
podman build -t wfrest ./docker/ubuntu/
Ou vous pouvez extraire depuis DockerHub
docker pull wfrest/wfrest
# include " wfrest/HttpServer.h "
using namespace wfrest ;
int main ()
{
HttpServer svr;
// curl -v http://ip:port/hello
svr. GET ( " /hello " , []( const HttpReq *req, HttpResp *resp)
{
resp-> String ( " world n " );
});
// curl -v http://ip:port/data
svr. GET ( " /data " , []( const HttpReq *req, HttpResp *resp)
{
std::string str = " Hello world " ;
resp-> String ( std::move (str));
});
// curl -v http://ip:port/post -d 'post hello world'
svr. POST ( " /post " , []( const HttpReq *req, HttpResp *resp)
{
// reference, no copy here
std::string& body = req-> body ();
fprintf (stderr, " post data : %s n " , body. c_str ());
});
if (svr. start ( 8888 ) == 0 )
{
getchar ();
svr. stop ();
} else
{
fprintf (stderr, " Cannot start server " );
exit ( 1 );
}
return 0 ;
}