mirror of
https://github.com/CrowCpp/Crow.git
synced 2024-06-07 21:10:44 +00:00
Added updated setup instructions (kept old instructions as "legacy")
This commit is contained in:
parent
62897acf0a
commit
db18647cb3
@ -1,16 +1,12 @@
|
|||||||
This page explains how to set Crow up for use with your project.
|
This page explains how to set Crow up for use with your project (***For versions 0.3+2 and lower***).
|
||||||
|
|
||||||
|
|
||||||
##Requirements
|
##Requirements
|
||||||
- C++ compiler with C++14 support.
|
- C++ compiler with C++11 support.
|
||||||
- Crow's CI uses g++-9.3 and clang-7.0 running on AMD64 (x86_64) and ARM64v8
|
- Crow's CI uses g++-9.3 and clang-7.0 running on AMD64 (x86_64) and ARM64v8
|
||||||
- boost library (1.70 or later).
|
- boost library (1.64 or later).
|
||||||
- **(optional)** ZLib for HTTP Compression.
|
- **(optional)** ZLib for HTTP Compression.
|
||||||
- **(optional)** CMake and Python3 to build tests and/or examples.
|
- **(optional)** CMake and Python3 to build tests and/or examples.
|
||||||
- **(optional)** Linking with jemalloc/tcmalloc is recommended for speed.
|
|
||||||
!!!note
|
|
||||||
|
|
||||||
While using Boost 1.70 or later is recommended, it may be possible to compile a Crow application with version 1.64
|
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
@ -22,6 +18,9 @@ This page explains how to set Crow up for use with your project.
|
|||||||
###Ubuntu
|
###Ubuntu
|
||||||
`sudo apt-get install build-essential libboost-all-dev`
|
`sudo apt-get install build-essential libboost-all-dev`
|
||||||
|
|
||||||
|
###Arch
|
||||||
|
`sudo pacman -S python boost boost-libs`
|
||||||
|
|
||||||
###Non Debian based GNU/Linux
|
###Non Debian based GNU/Linux
|
||||||
Use your package manager to install the following:
|
Use your package manager to install the following:
|
||||||
- GCC and G++ (or Clang and Clang++)
|
- GCC and G++ (or Clang and Clang++)
|
79
docs/getting_started/setup/linux.md
Normal file
79
docs/getting_started/setup/linux.md
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
Here's how you can install Crow on your favorite GNU/Linux distro.
|
||||||
|
# Getting Crow
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
- C++ compiler with at least C++11 support.
|
||||||
|
- boost library & development headers (1.64 or later).
|
||||||
|
- **(optional)** ZLib for HTTP Compression.
|
||||||
|
- **(optional)** OpenSSL for HTTPS support.
|
||||||
|
- **(optional)** CMake and Python3 to build tests and/or examples.
|
||||||
|
!!!note
|
||||||
|
|
||||||
|
Crow's CI uses `g++-9.3` and `clang-7.0` running on AMD64 (x86_64) and ARM64v8 architectures.
|
||||||
|
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
## Using a package Manager
|
||||||
|
You can install Crow on GNU/Linux as a pre-made package
|
||||||
|
=== "Debian/Ubuntu"
|
||||||
|
|
||||||
|
Simply download Crow's `.deb` file from the [release section](https://github.com/CrowCpp/Crow/releases/latest) and Install it.
|
||||||
|
|
||||||
|
=== "Arch"
|
||||||
|
|
||||||
|
Crow is available for pacman through AUR, you only need to run `pacman -S crow`
|
||||||
|
|
||||||
|
|
||||||
|
<br><br>
|
||||||
|
## 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
|
||||||
|
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>
|
||||||
|
`cmake .. -DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF`
|
||||||
|
4. Run `make install`.
|
||||||
|
!!!note
|
||||||
|
|
||||||
|
You can ignore `-DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF` if you want to build the Examples and Unit Tests.
|
||||||
|
<br>
|
||||||
|
### Manually
|
||||||
|
Crow can be installed manually on your Linux computer.
|
||||||
|
#### Multiple header files
|
||||||
|
=== "Project Only"
|
||||||
|
|
||||||
|
Copy Crow's `include` directory to your project's `include` directory.
|
||||||
|
|
||||||
|
=== "System wide"
|
||||||
|
|
||||||
|
Copy Crow's `include` directory to the `/usr/local/include` directory.
|
||||||
|
|
||||||
|
#### 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.
|
||||||
|
navigate to the `scripts` directory and run `./merge_all.py ../include crow_all.h`. This will generate a `crow_all.h` file that you can use in your projects.
|
||||||
|
!!!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
|
||||||
|
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
|
||||||
|
All you need to do is run the following command:
|
||||||
|
```
|
||||||
|
g++ main.cpp -lpthread
|
||||||
|
```
|
||||||
|
You can use arguments like `-DCROW_ENABLE_DEBUG`, `-DCROW_ENABLE_COMPRESSION -lz` for HTTP Compression, or `-DCROW_ENABLE_SSL -lssl` for HTTPS support, or even replace g++ with clang++.
|
||||||
|
!!!warning
|
||||||
|
|
||||||
|
If you're using a version of boost prior to 1.69, you'll need to add the argument `-lboost_system` in order for you Crow application to compile correctly.
|
57
docs/getting_started/setup/macos.md
Normal file
57
docs/getting_started/setup/macos.md
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
Here's how you can install Crow on your Mac.
|
||||||
|
# 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
|
||||||
|
You can also download the `crow_all.h` file which replaces the `include` folder.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
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:
|
||||||
|
```
|
||||||
|
python3 merge_all.py ../include crow_all.h
|
||||||
|
```
|
||||||
|
This will generate a `crow_all.h` file which you can use in the following steps
|
||||||
|
!!!warning
|
||||||
|
|
||||||
|
`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
|
||||||
|
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).
|
||||||
|
4. Change the following project settings:
|
||||||
|
|
||||||
|
=== "Multiple Headers"
|
||||||
|
|
||||||
|
1. Add header search paths for crow's include folder and boost's folder (`/usr/local/include`, `/usr/local/Cellar/boost/include`, and where you placed Crow's `include` folder)
|
||||||
|
2. Add linker flags (`-lpthread` and `-lboost_system` if you're running an old version of boost)
|
||||||
|
|
||||||
|
=== "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 -> )
|
||||||
|
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)
|
||||||
|
|
||||||
|
5. Write your Crow application in `main.cpp` (something like the Hello World example will work).
|
||||||
|
6. Press `▶` to compile and run your Crow application.
|
||||||
|
|
||||||
|
|
||||||
|
# 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).
|
||||||
|
3. Run the following Commands:
|
||||||
|
1. `mkdir build`
|
||||||
|
2. `cd build`
|
||||||
|
3. `cmake ..`
|
||||||
|
4. `make -j12`
|
||||||
|
!!!note
|
||||||
|
|
||||||
|
You can add options like `-DCROW_ENABLE_SSL`, `-DCROW_ENABLE_COMPRESSION`, or `-DCROW_AMALGAMATE` to `3.c` to build their tests/examples.
|
22
docs/getting_started/setup/windows.md
Normal file
22
docs/getting_started/setup/windows.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Here's how you can install Crow on your Windows machine.
|
||||||
|
# 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
|
||||||
|
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`.
|
||||||
|
2. `git clone https://github.com/microsoft/vcpkg.git`
|
||||||
|
3. `.\vcpkg\bootstrap-vcpkg.bat`
|
||||||
|
4. `.\vcpkg\vcpkg integrate install`
|
||||||
|
5. Create empty Visual Studio project.
|
||||||
|
6. In solution explorer, right click the name of your project then click `Open Folder in File Explorer`.
|
||||||
|
7. Copy `crow_all.h`, `example_with_all.cpp`, `vcpkg.json` to opened folder.
|
||||||
|
8. Add `crow_all.h` to `Header Files` and `example_with_all.cpp` to `Source Files`.
|
||||||
|
9. In solution explorer, right click the name of your project then click `Properties`.
|
||||||
|
10. Under `vcpkg`, set `Use Vcpkg Manifest` to `Yes` and `Additional Options` to `--feature-flags="versions"`.
|
||||||
|
11. Set `Debug/Release` and `x64/x86`.
|
||||||
|
12. Run.
|
@ -76,3 +76,7 @@ class a : public crow::returnable
|
|||||||
##Catchall routes
|
##Catchall routes
|
||||||
**Introduced in: `v0.3`**<br><br>
|
**Introduced in: `v0.3`**<br><br>
|
||||||
By default, any request that Crow can't find a route for will return a simple 404 response. You can change that to return a default route using the `CROW_CATCHALL_ROUTE(app)` macro. Defining it is identical to a normal route, even when it comes to the `const crow::request&` and `crow::response&` parameters being optional.
|
By default, any request that Crow can't find a route for will return a simple 404 response. You can change that to return a default route using the `CROW_CATCHALL_ROUTE(app)` macro. Defining it is identical to a normal route, even when it comes to the `const crow::request&` and `crow::response&` parameters being optional.
|
||||||
|
!!!note
|
||||||
|
|
||||||
|
For versions higher than 0.3 (excluding patches), Catchall routes handle 404 and 405 responses. The default response will contain the code 404 or 405.
|
||||||
|
|
||||||
|
@ -28,7 +28,11 @@ markdown_extensions:
|
|||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Getting Started:
|
- Getting Started:
|
||||||
- Setup: getting_started/setup.md
|
- Setup:
|
||||||
|
- Linux: getting_started/setup/linux.md
|
||||||
|
- MacOS: getting_started/setup/macos.md
|
||||||
|
- Windows: getting_started/setup/windows.md
|
||||||
|
- Legacy: getting_started/setup/legacy.md
|
||||||
- Your First Application: getting_started/your_first_application.md
|
- Your First Application: getting_started/your_first_application.md
|
||||||
- Guides:
|
- Guides:
|
||||||
- Different parts of Crow:
|
- Different parts of Crow:
|
||||||
|
Loading…
Reference in New Issue
Block a user