Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/therustifyer/wex-framework
C++ powerful and scalable web framework
https://github.com/therustifyer/wex-framework
Last synced: about 11 hours ago
JSON representation
C++ powerful and scalable web framework
- Host: GitHub
- URL: https://github.com/therustifyer/wex-framework
- Owner: TheRustifyer
- Created: 2022-01-01T21:31:27.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-03T21:47:38.000Z (almost 3 years ago)
- Last Synced: 2024-01-20T10:45:38.511Z (about 1 year ago)
- Language: C++
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Wex Framework
Welcome to the `Wex Framwework`, a lightweight, portable, idiomatic, fast and scalable web framework for `modern C++`
![Wex build and test](https://github.com/Pyzyryab/Wex-Framework/actions/workflows/cmake.yml/badge.svg?event=push)
## Motivation behind the project
Take care that this it's not designed like to be a production ready project. It's a posibility, yes, but the foundation of this work it's to learn about five main things:
- Modern C++ (C++20 will be the target until a new release, trying to implement Coroutines, Concepts, Modules... always looking to bring the latest but stable language feature)
- Advanced modern software desing architecture
- SOLID design patterns and principles
- Low level web stuff (Websockets, TCP/UDP implementation protocols, resource routing)
- C++ test drive development (GoogleTest fwk will be used)## Basic style guide conventions (Work in progress)
In order to someday let people join into the development of this framework, a `C++` style guidelines will be defined since the beginning and applied across the whole framework development and designing while it's been writting.
- Delimitter openning key will be written after the last word of the function, class or struct declaration.
```
// Function
void foo() const override {
// Body
}// Class or Struct
struct MyStruct {
// Members
}// Class
class MyCustomType : public MyBaseCustomType {
private:
// Private members and methods
public:
// Public members and methods
}: alternative :
class MyCustomType
: public MyBaseCustomType { // If this one it's applied, put a new line after the public inherit signature part and the members/method zoneprivate:
// Private members and methods
public:
// Public members and methods
}
```The most important rule applied here it's that every time you break a line, tab ident the next line with 4 spaces.
1 tab distance it's written (if possible) with 4 spaces.Same applies for the `if - else` statements and `for` and `while` loops declarations.
End users of the APIs here provided, in the other hand, can write C++ in the way that best fills it's desires, but we always recommend to stick to the same guidelines provided here, in order to have a same pattern in the whole ecosystem