mirror of
https://github.com/CrowCpp/Crow.git
synced 2024-06-07 21:10:44 +00:00
Merge branch 'master' into ws_close
This commit is contained in:
commit
f3c9306a95
@ -20,7 +20,6 @@ steps:
|
||||
- export COVERALLS_PULL_REQUEST=$DRONE_PULL_REQUEST
|
||||
- apt-get -y update
|
||||
- apt-get -y install libboost-all-dev doxygen mkdocs graphviz zlib1g-dev gcc clang make cmake python3 python3-pip git openssl libssl-dev
|
||||
- pip3 install mkdocs-material mkdocs-redirects pyyaml --no-input
|
||||
- git clone https://github.com/CrowCpp/cpp-coveralls.git
|
||||
- cd cpp-coveralls
|
||||
- pip3 install . --no-input
|
||||
@ -114,7 +113,7 @@ steps:
|
||||
- export TRAVIS_JOB_ID=$DRONE_BUILD_NUMBER
|
||||
- apt-get -y update
|
||||
- apt-get -y install libboost-all-dev doxygen mkdocs graphviz zlib1g-dev gcc clang make cmake python3 python3-pip git openssl libssl-dev
|
||||
- pip3 install mkdocs-material mkdocs-redirects pyyaml --no-input
|
||||
- pip3 install mkdocs-material mkdocs-redirects pyyaml mkdocs-meta-descriptions-plugin --no-input
|
||||
- git clone https://github.com/CrowCpp/cpp-coveralls.git
|
||||
- cd cpp-coveralls
|
||||
- pip3 install . --no-input
|
||||
|
@ -1,7 +1,7 @@
|
||||
Here's how you can install Crow on your favorite GNU/Linux distro.
|
||||
# Getting Crow
|
||||
## Getting Crow
|
||||
|
||||
## Requirements
|
||||
### Requirements
|
||||
- C++ compiler with at least C++11 support.
|
||||
- boost library & development headers (1.64 or later).
|
||||
- **(optional)** ZLib for HTTP Compression.
|
||||
@ -14,7 +14,7 @@ Here's how you can install Crow on your favorite GNU/Linux distro.
|
||||
|
||||
<br><br>
|
||||
|
||||
## Using a package Manager
|
||||
### Using a package Manager
|
||||
You can install Crow on GNU/Linux as a pre-made package
|
||||
=== "Debian/Ubuntu"
|
||||
|
||||
@ -26,12 +26,12 @@ You can install Crow on GNU/Linux as a pre-made package
|
||||
|
||||
|
||||
<br><br>
|
||||
## Release package
|
||||
### Release package
|
||||
Crow provides an archive containing the framework and CMake files, just copy the `include` folder to `/usr/local/include` and `lib` folder to `/usr/local/lib`.<br><br>
|
||||
You can also download the `crow_all.h` file and simply include that into your project.
|
||||
<br><br>
|
||||
## Installing from source
|
||||
### Using CMake
|
||||
### Installing from source
|
||||
#### Using CMake
|
||||
1. Download Crow's source code (Either through github's UI or by using<br> `git clone https://github.com/CrowCpp/Crow.git`).
|
||||
2. Run `mkdir build` inside of crow's source directory.
|
||||
3. Navigate to the new "build" directory and run the following:<br>
|
||||
@ -41,9 +41,9 @@ You can also download the `crow_all.h` file and simply include that into your pr
|
||||
|
||||
You can ignore `-DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF` if you want to build the Examples and Unit Tests.
|
||||
<br>
|
||||
### Manually
|
||||
#### Manually
|
||||
Crow can be installed manually on your Linux computer.
|
||||
#### Multiple header files
|
||||
##### Multiple header files
|
||||
=== "Project Only"
|
||||
|
||||
Copy Crow's `include` directory to your project's `include` directory.
|
||||
@ -52,7 +52,7 @@ Crow can be installed manually on your Linux computer.
|
||||
|
||||
Copy Crow's `include` directory to the `/usr/local/include` directory.
|
||||
|
||||
#### Single header (crow_all.h)
|
||||
##### Single header (crow_all.h)
|
||||
!!!warning
|
||||
|
||||
`crow_all.h` is recommended only for small, possibly single source file projects, and ideally should not be installed on your system.
|
||||
@ -60,15 +60,15 @@ navigate to the `scripts` directory and run `./merge_all.py ../include crow_all.
|
||||
!!!note
|
||||
|
||||
You can also include or exclude middlewares from your `crow_all.h` by using `-i` or `-e` followed by the middleware header file names separated by a comma (e.g. `merge_all.py ../include crow_all.h -e cookie_parser` to exclude the cookie parser middleware).
|
||||
# Compiling your project
|
||||
## Using CMake
|
||||
## Compiling your project
|
||||
### Using CMake
|
||||
In order to get your CMake project to work with Crow, all you need are the following lines in your CMakeLists.txt:
|
||||
```
|
||||
find_package(Crow)
|
||||
target_link_libraries(your_project PUBLIC Crow::Crow)
|
||||
```
|
||||
From there CMake should handle compiling and linking your project.
|
||||
## Directly using a compiler
|
||||
### Directly using a compiler
|
||||
All you need to do is run the following command:
|
||||
```
|
||||
g++ main.cpp -lpthread
|
||||
|
@ -1,17 +1,17 @@
|
||||
Here's how you can install Crow on your Mac.
|
||||
# Getting Crow
|
||||
## From a [release](https://github.com/CrowCpp/Crow/releases)
|
||||
### Archive
|
||||
## Getting Crow
|
||||
### From a [release](https://github.com/CrowCpp/Crow/releases)
|
||||
#### Archive
|
||||
Crow provides an archive containing the framework and CMake files, You will only need the `include` folder inside that archive.
|
||||
### Single header file
|
||||
#### Single header file
|
||||
You can also download the `crow_all.h` file which replaces the `include` folder.
|
||||
|
||||
## From Source
|
||||
### From Source
|
||||
To get Crow from source, you only need to download the repository (as a `.zip` or through `git clone https://github.com/CrowCpp/Crow.git`).
|
||||
### include folder
|
||||
#### include folder
|
||||
Once you've downloaded Crow's source code, you only need to take the `include` folder.
|
||||
### Single header file
|
||||
You can generate your own single header file by using navigating to the `scripts` folder with your terminal and running the following command:
|
||||
#### Single header file
|
||||
You can generate your own single header file by navigating to the `scripts` folder with your terminal and running the following command:
|
||||
```
|
||||
python3 merge_all.py ../include crow_all.h
|
||||
```
|
||||
@ -21,8 +21,8 @@ This will generate a `crow_all.h` file which you can use in the following steps
|
||||
`crow_all.h` is recommended only for small, possibly single source file projects. For larger projects, it is advised to use the multi-header version.
|
||||
|
||||
|
||||
# Setting up your Crow project
|
||||
## Using XCode
|
||||
## Setting up your Crow project
|
||||
### Using XCode
|
||||
1. Download and install [Homebrew](https://brew.sh).
|
||||
2. Run `brew install boost` in your terminal.
|
||||
3. Create a new XCode project (macOS -> Command Line Tool).
|
||||
@ -35,7 +35,7 @@ This will generate a `crow_all.h` file which you can use in the following steps
|
||||
|
||||
=== "Single Header"
|
||||
|
||||
1. Place `crow_all.h` inside your project folder and add it to the project in XCode (you need to use the File -> )
|
||||
1. Place `crow_all.h` inside your project folder and add it to the project in XCode (you need to use File -> Add files to "project_name")
|
||||
2. Add header search paths for boost's folder (`/usr/local/include`, and `/usr/local/Cellar/boost/include`)
|
||||
3. Add linker flags (`-lpthread` and `-lboost_system` if you're running an old version of boost)
|
||||
|
||||
@ -43,7 +43,7 @@ This will generate a `crow_all.h` file which you can use in the following steps
|
||||
6. Press `▶` to compile and run your Crow application.
|
||||
|
||||
|
||||
# Building Crow's tests/examples
|
||||
## Building Crow's tests/examples
|
||||
1. Download and install [Homebrew](https://brew.sh).
|
||||
2. Run `brew install cmake boost` in your terminal.
|
||||
3. Get Crow's source code (the entire source code).
|
||||
|
@ -1,11 +1,11 @@
|
||||
Here's how you can install Crow on your Windows machine.
|
||||
# Getting and Compiling Crow
|
||||
## Using A package manager
|
||||
### VCPKG
|
||||
## Getting and Compiling Crow
|
||||
### Using A package manager
|
||||
#### VCPKG
|
||||
Crow can be simply installed through VCPKG using the command `vcpkg install crow`
|
||||
|
||||
## Manually (source or release)
|
||||
### Microsoft Visual Studio 2019 and VCPKG
|
||||
### Manually (source or release)
|
||||
#### Microsoft Visual Studio 2019 and VCPKG
|
||||
The following guide will use `example_with_all.cpp` as the Crow application for demonstration purposes. VCPKG will be used only to install Crow's dependencies.
|
||||
|
||||
1. Generate `crow_all.h` by navigating to the `scripts` folder and running `python3 merge_all.py ..\include crow_all.h`.
|
||||
|
@ -27,7 +27,7 @@ CROW_ROUTE(app, "/")([](){
|
||||
```
|
||||
For more details on routes, please go [here](../../guides/routes).
|
||||
|
||||
#4. Running the app
|
||||
## 4. Running the app
|
||||
Once you're happy with how you defined all your routes, you're going to want to instruct Crow to run your app. This is done using the `run()` method.
|
||||
``` cpp
|
||||
app.port(18080).multithreaded().run();
|
||||
|
@ -22,7 +22,7 @@ To do that, you need to convert it to a `wvalue`, which can be done by simply wr
|
||||
|
||||
For more info on read values go [here](/reference/classcrow_1_1json_1_1rvalue.html).<br><br>
|
||||
|
||||
#wvalue
|
||||
## wvalue
|
||||
JSON write value, used for creating, editing and converting JSON to a string.<br><br>
|
||||
|
||||
!!!note
|
||||
|
@ -1,5 +1,6 @@
|
||||
**Introduced in: `v0.2`**<br><br>
|
||||
Multipart is a way of forming HTTP requests or responses to contain multiple distinct parts.<br>
|
||||
|
||||
Such an approach allows a request to contain multiple different pieces of data with potentially conflicting data types in a single response payload.<br>
|
||||
It is typically used either in html forms, or when uploading multiple files.<br><br>
|
||||
|
||||
|
@ -2,13 +2,13 @@ Websockets are a way of connecting a client and a server without the request res
|
||||
|
||||
To create a websocket in Crow, you need a websocket route.<br>
|
||||
A websocket route differs from a normal route quite a bit. While it uses the same `CROW_ROUTE(app, "/url")` macro, that's about where the similarities end.<br>
|
||||
A websocket route follows the macro with `.websocket()` which is then followed by a series of methods (with handlers inside) for each event. These are:
|
||||
A websocket route follows the macro with `.websocket()` which is then followed by a series of methods (with handlers inside) for each event. These are (sorted by order of execution):
|
||||
|
||||
- `#!cpp onopen([&](crow::websocket::connection& conn){handler code goes here})`
|
||||
- `#!cpp onaccept([&](const crow::request&){handler code goes here})` (This handler has to return bool)
|
||||
- `#!cpp onopen([&](crow::websocket::connection& conn){handler code goes here})`
|
||||
- `#!cpp onmessage([&](crow::websocket::connection& conn, const std::string message, bool is_binary){handler code goes here})`
|
||||
- `#!cpp onclose([&](crow::websocket::connection& conn, const std::string reason){handler code goes here})`
|
||||
- `#!cpp onerror([&](crow::websocket::connection& conn){handler code goes here})`<br><br>
|
||||
- `#!cpp onerror([&](crow::websocket::connection& conn){handler code goes here})`
|
||||
- `#!cpp onclose([&](crow::websocket::connection& conn, const std::string reason){handler code goes here})`<br><br>
|
||||
|
||||
These event methods and their handlers can be chained. The full Route should look similar to this:
|
||||
```cpp
|
||||
|
@ -2,6 +2,17 @@
|
||||
|
||||
<!-- Render hero under tabs -->
|
||||
|
||||
{% block extrahead %}
|
||||
<meta property="og:title" content="CrowCpp"/>
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:description" content="A Fast and Easy to use microframework for the web."/>
|
||||
<meta name="description" content="Crow is a C++ microframework for running web services. It uses routing similar to Python's Flask which makes it easy to use. It is also extremely fast, beating multiple existing C++ frameworks as well as non C++ frameworks.">
|
||||
<meta property="og:image" content="/assets/og_img.png" />
|
||||
<meta property="og:url" content="https://crowcpp.org">
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:image" content="/assets/og_img.png">
|
||||
{% endblock %}
|
||||
|
||||
<!-- Content -->
|
||||
{% block content %}
|
||||
<style>
|
||||
|
@ -74,6 +74,7 @@ plugins:
|
||||
- redirects:
|
||||
redirect_maps:
|
||||
'getting_started/setup/': 'getting_started/setup/linux.md'
|
||||
- meta-descriptions
|
||||
|
||||
extra_css:
|
||||
- 'stylesheets/colors.css'
|
||||
|
Loading…
Reference in New Issue
Block a user