https://github.com/awslabs/aws-c-http
C99 implementation of the HTTP/1.1 and HTTP/2 specifications
https://github.com/awslabs/aws-c-http
hacktoberfest
Last synced: 3 months ago
JSON representation
C99 implementation of the HTTP/1.1 and HTTP/2 specifications
- Host: GitHub
- URL: https://github.com/awslabs/aws-c-http
- Owner: awslabs
- License: apache-2.0
- Created: 2018-07-31T00:07:24.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2026-03-27T23:33:31.000Z (4 months ago)
- Last Synced: 2026-03-28T01:48:15.052Z (4 months ago)
- Topics: hacktoberfest
- Language: C
- Homepage:
- Size: 4.26 MB
- Stars: 171
- Watchers: 24
- Forks: 49
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Notice: NOTICE
Awesome Lists containing this project
README
## AWS C Http
C99 implementation of the HTTP/1.1 and HTTP/2 specifications
## License
This library is licensed under the Apache 2.0 License.
## Usage
### Building
CMake 3.9+ is required to build.
`` must be an absolute path in the following instructions.
#### Linux-Only Dependencies
If you are building on Linux, you will need to build aws-lc and s2n-tls first.
```
git clone git@github.com:awslabs/aws-lc.git
cmake -S aws-lc -B aws-lc/build -DCMAKE_INSTALL_PREFIX=
cmake --build aws-lc/build --target install
git clone git@github.com:aws/s2n-tls.git
cmake -S s2n-tls -B s2n-tls/build -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH=
cmake --build s2n-tls/build --target install
```
#### Building aws-c-http and Remaining Dependencies
```
git clone git@github.com:awslabs/aws-c-common.git
cmake -S aws-c-common -B aws-c-common/build -DCMAKE_INSTALL_PREFIX=
cmake --build aws-c-common/build --target install
git clone git@github.com:awslabs/aws-c-cal.git
cmake -S aws-c-cal -B aws-c-cal/build -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH=
cmake --build aws-c-cal/build --target install
git clone git@github.com:awslabs/aws-c-io.git
cmake -S aws-c-io -B aws-c-io/build -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH=
cmake --build aws-c-io/build --target install
git clone git@github.com:awslabs/aws-c-compression.git
cmake -S aws-c-compression -B aws-c-compression/build -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH=
cmake --build aws-c-compression/build --target install
git clone git@github.com:awslabs/aws-c-http.git
cmake -S aws-c-http -B aws-c-http/build -DCMAKE_INSTALL_PREFIX= -DCMAKE_PREFIX_PATH=
cmake --build aws-c-http/build --target install
```
#### Run Integration Tests with localhost
To run some of the integration tests (start with localhost_integ_*), you need to set up a localhost that echo the request headers from `/echo` back first.
To do that, check [localhost](./tests/mock_server/) script we have.
After that, configure and build your cmake project with `-DENABLE_LOCALHOST_INTEGRATION_TESTS=true` to build the tests with localhost and run them from `ctest --output-on-failure -R localhost_integ_*`.