TinyWebServer

Linux下C++轻量级WebServer服务器

APACHE-2.0 License

Stars
16.5K

TinyWebServer

LinuxC++Web.

  • ** + socket + epoll(ETLT) + (ReactorProactor)**
  • ****HTTPGETPOST
  • web********
  • /
  • Webbench****

  • /C++
  • ``
    • unix
    • unix

Demo CPP11


Demo

  • (6M)
  • (39M)

WebbenchlistenfdconnfdETLT.

  • ProactorLT + LT93251 QPS
  • ProactorLT + ET97459 QPS
  • ProactorET + LT80498 QPS
  • ProactorET + ET92167 QPS
  • ReactorLT + ET69175 QPS
  • 10500
  • 5s

**** webbenchwebbenchwebbench


  • Bug
  • ETLT
  • lock.h
  • RAII
  • main
  • SQL
  • Reactor

(raw_version).

githubGithub.


    • Ubuntu16.04
    • MySQL5.7.29
    • WindowsLinux
    • Chrome
    • FireFox
  • MySQL

    // yourdb
    create database yourdb;
    
    // user
    USE yourdb;
    CREATE TABLE user(
        username char(50) NULL,
        passwd char(50) NULL
    )ENGINE=InnoDB;
    
    // 
    INSERT INTO user(username, passwd) VALUES('name', 'passwd');
    
  • main.cpp

    //,,
    string user = "root";
    string passwd = "root";
    string databasename = "yourdb";
    
  • build

    sh ./build.sh
    
  • server

    ./server
    
```C++
ip:9006
```

./server [-p port] [-l LOGWrite] [-m TRIGMode] [-o OPT_LINGER] [-s sql_num] [-t thread_num] [-c close_log] [-a actor_model]

:.

  • -p
    • 9006
  • -l
    • 0
    • 1
  • -mlistenfdconnfdLT + LT
    • 0LT + LT
    • 1LT + ET
    • 2ET + LT
    • 3ET + ET
  • -o
    • 0
    • 1
  • -s
    • 8
  • -t
    • 8
  • -c
    • 0
    • 1
  • -aProactor
    • 0Proactor
    • 1Reactor
./server -p 9007 -l 1 -m 0 -o 1 -s 10 -t 10 -c 1 -a 1
  • 9007
  • LT + LT
  • 10
  • 10
  • Reactor

(raw_version).

Star History

CPP11

CPP11Webserver


Linux.

PR: @RownH@mapleFU@ZWiley@zjuHong@mamil@byfate@MaJun827@BBLiu-coder@smoky96@yfBong@liuwuyao@Huixxi@markparticle@blogg9ggg.

Badges
Extracted from project README
Star History Chart