Skip to content
/ FabCc Public

Asynchronous non-blocking dark magic for all-platform c++ web🌐 .No GC📵! LOW CODE💾!

License

Notifications You must be signed in to change notification settings

asciphx/FabCc

Repository files navigation

FabCc(v1.0-UHD)

license platform release

Inspired by other well-known C++ web frameworks, FabCc's positioning is a network framework, which is characterized by low code, high performance, strong type, super standard, safest and awesome. The logo uses Nod's logo, and the design comes from Command and Conquer(CNC).

FabCc

Eng | 简中

On April 12th, the ultra high definition 8k remastered version arrived. Support Gzip compression of web pages to reduce traffic consumption. Fixed various bugs, compatible with modern JSON and C++11, fixed keep alive mechanism, and launched best C++20 stack less coroutine. The following is a comparison chart. coroutine

Features

  • Full platform support based on epoll architecture [implemented by wepoll under windows]
  • Now the minimum compiler supports the c++11 version, and is currently compatible with many features of C++17 including any, optional, string_view, and some extensions
  • The fewest third-party libraries, are stored in the project in the form of source files
  • Incredible compilation speed and development speed are also improved
  • Support the web version of Postman, the address is 127.0.0.1:8080/test.html
  • Can add, delete, modify and query the route. Dynamic Route Reference[lithium]Iterative
  • Supports asymmetric coroutines similar to stackless coroutines, such as Python's generator. Coroutine trip from[boost]
  • With an API similar to nodejs, it also looks like JS, llhttp parser from[h2o] [nodejs]
  • str_map for string mapping taken from[beast],[crow]
  • file_sptr for Static file cache from[libhttp]
  • Support unit testing. Please refer to [coost] for documentation
  • Json integrated in[coost], and supports serialization and deserialization
  • Zlib compression from[zlib]
  • mman from [mman]
  • cache_file from [drogon]

Still under development

  • Dynamic routing
  • Gzip compression
  • Body parser
  • SSL certificate support
  • WebSocket
  • Coroutines(c++11 ~ c++20)
  • UDP server
  • TCP client

Description

Building (Tests, Examples)

Out-of-source build with CMake is recommended. delete clean cmake cache if build fails. cmake -B build followed by additional compilation options. Use vcpkg -DCMAKE_TOOLCHAIN_FILE=../vcpkg.cmake Use llhttp parser -DLLHTTP=1 Use openssl -DOPENSSL=1

cmake -B build -DLLHTTP=0 -DOPENSSL=0
cmake --build ./build --config Release -j