中文版入口
รวดเร็ว มีประสิทธิภาพ⌛️ และง่ายที่สุดใช่ไหม? c++ async micro web framework ที่ใช้ เวิร์กโฟลว์ C++
C++ Workflow คือ C++ Parallel Computing และ Asynchronous Networking Engine น้ำหนักเบา
หากคุณต้องการประสิทธิภาพและผลผลิตที่ดี คุณจะต้องหลงรัก wfrest
สำหรับข้อมูลเพิ่มเติม คุณสามารถดูการสนทนาเป็นอันดับแรก:
https://github.com/wfrest/wfrest/discussions
เคล็ดลับ : เนื่องจากใน g++ 4.9 และเวอร์ชันก่อนหน้า lambda ไม่สามารถบันทึกเทมเพลตที่หลากหลายได้ เราจึงต้องการให้คุณอัปเกรด g++ เวอร์ชันเป็น 5.0 ขึ้นไป
หากคุณใช้ Ubuntu 20.04 คุณสามารถติดตั้งได้โดยใช้คำสั่ง:
apt-get install build-essential cmake zlib1g-dev libssl-dev libgtest-dev -y
สำหรับรายละเอียดเพิ่มเติม คุณสามารถดูได้ที่นี่: รายละเอียดข้อกำหนด
git clone --recursive https://github.com/wfrest/wfrest
cd wfrest
make
sudo make install
สำหรับการทดสอบ:
make check
ตัวอย่างเช่น :
make example
หากคุณต้องการใช้ xmake เพื่อสร้าง wfrest คุณสามารถดูเอกสาร xmake build ได้
ใช้ dockerfile ซึ่ง Dockerfile จะค้นหาไดเร็กทอรีย่อย /docker
ของที่เก็บซอร์สโค้ดรูท
docker build -t wfrest ./docker/ubuntu/
หากคุณใช้ podman
คุณสามารถสร้างมันขึ้นมาได้เช่นกัน และทดสอบภายใต้ Ubuntu 20.04
podman build -t wfrest ./docker/ubuntu/
หรือคุณสามารถดึงจาก 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 ;
}