mirror of
https://github.com/bdnugget/kcgi.git
synced 2026-11-07 05:47:27 +00:00
59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
## Synopsis
|
|
|
|
**kcgi** is an open source CGI and FastCGI library for C/C++ web applications.
|
|
It's minimal, secure, auditable, and fits within your
|
|
[BCHS](https://learnbchs.org) software stack.
|
|
|
|
To keep up to date with the current stable release of **kcgi**, visit
|
|
https://kristaps.bsd.lv/kcgi. The website also contains canonical
|
|
installation, deployment, examples, and usage documentation.
|
|
|
|
## Installation
|
|
|
|
To use the bleeding-edge version of **kcgi** (instead of from your system's
|
|
packages or a stable version), the process it the similar as for source
|
|
releases.
|
|
|
|
Begin by cloning or downloading. Then configure with `./configure`,
|
|
compile with `make` (BSD make, so it may be `bmake` on your system),
|
|
then `make install` (or use `sudo` or `doas`, if applicable). To
|
|
install in an alternative directory to `/usr/local`, set the `PREFIX`
|
|
variable when you run `configure`.
|
|
|
|
```sh
|
|
./configure PREFIX=~/.local
|
|
make
|
|
make install
|
|
```
|
|
|
|
If you plan on using `pkg-config` with the above invocation, make sure
|
|
that *~/.local/lib/pkgconfig* is recognised as a path to package
|
|
specifications. You'll also want to make sure that `man` can access the
|
|
installed location of *~/.local/man*, in this case.
|
|
|
|
## Tests
|
|
|
|
It's useful to run the installed regression tests on the bleeding edge
|
|
sources. (Again, this uses BSD make, so it may be `bmake` on your
|
|
system.)
|
|
|
|
```sh
|
|
make regress
|
|
```
|
|
|
|
The system contains a full regression suite and is also built to work
|
|
with [AFL](http://lcamtuf.coredump.cx/afl/). To run some of the bundled
|
|
tests, use the binaries compiled into the `afl` directory. (Again, this
|
|
uses BSD make, so it may be `bmake` on your system.)
|
|
|
|
```sh
|
|
make afl
|
|
cd afl
|
|
afl-fuzz -i in/urlencoded -o out -- ./afl-urlencoded
|
|
```
|
|
|
|
## License
|
|
|
|
All sources use the ISC (like OpenBSD) license.
|
|
See the [LICENSE.md](LICENSE.md) file for details.
|