https://github.com/operationdarkside/ctas
A Compile Time Application Server for C++
https://github.com/operationdarkside/ctas
application-server c-plus-plus-17 concepts networking webserver
Last synced: 9 months ago
JSON representation
A Compile Time Application Server for C++
- Host: GitHub
- URL: https://github.com/operationdarkside/ctas
- Owner: OperationDarkside
- License: gpl-3.0
- Created: 2018-11-30T16:26:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-12-14T02:29:32.000Z (over 6 years ago)
- Last Synced: 2025-06-17T20:35:16.676Z (10 months ago)
- Topics: application-server, c-plus-plus-17, concepts, networking, webserver
- Language: C++
- Size: 46.9 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CTAS
A Compile Time Application Server for C++
## Goal
This project aims to provide an easy to use HTTP webserver with lots of compile time type checking.
## Requirements
- C++ 17
- Until C++ standardizes a networking library Christian Kohlhoff's Networking TS prototype is used
- For lots of the compile time checking this project uses concept-like template checking via std::enable_if.
Once networking and concepts are in the C++ standard, this project doesn't have any external dependencies.
## How to
### Pages
Create a class that fullfills the requirements (concept) of a page and register it at the server with a certain path. The "HandleRequest" method is called once an external http request requests the given path.
### Sessions
A session is also a user defined class, that is attached to a request before it is delivered to the page.
### Session Provider
Gives you the opportunity to control how sessions are stored. Hashmaps, files or database are a few suggestions.