fastcgi++
A C++ FastCGI/Web API
README.md
Go to the documentation of this file.
1 # fastcgi++ #
2 
3 **Author:** Eddie Carle
4 
5 **Version:** 3.0beta
6 
7 ## News ##
8 
9 **May 28, 2016** - Some good examples are now done and in the documentation.
10 I've got said documentation hosted online now so [check it out][13].
11 
12 **May 18, 2016** - The re-write is now effectively complete. What I mean by this
13 is that the library now builds and passes some basic benchmarking tests. I'm
14 really hoping to get as much feedback as possible so please test away. The docs
15 are not web hosted anywhere yet so you'll have to build them yourself as
16 described below. Note that the only example/tutorial that works so far is the
17 helloworld one.
18 
19 **April 10, 2016** - Fastcgi++ is going through a dramatic rewrite now and the
20 master branch does not work at all. If you're here hoping for a functional
21 version scroll down to the releases section. If you'd like to read a bit more
22 about the rewrite and fastcgi++ in general, check out [[Ten years of
23 fastcgi++][1]].
24 
25 [1]: http://eddie.isatec.ca/2016/04/10/ten-years-of-fastcgi++.html
26 
27 ## About ##
28 
29 This library is intended as a high-efficiency C++14 api for web development. It
30 allows your applications to communicate with web servers through the FastCGI
31 protocol, tabulates all your environment data, manages character encoding, and
32 allows requests to effectively share CPU time. If you want any further
33 information check the Doxygen documentation associated with the respective
34 release, or build it yourself. Be sure to read through the examples.
35 
36 ## Releases ##
37 
38 Your best bet for releases and documentation is to clone the Git repository,
39 checkout the tag you want and see the building section of either this file or
40 the Doxygen documentation. If you're too lazy for that, however, you can take
41 the risk and try the following links.
42  - [[fastcgipp-master.zip][12]] [[Documentation][13]] [[Tree][14]]
43  - [[fastcgi++-2.1.tar.bz2][2]] [[Documentation][3]] [[Tree][10]]
44  - [[fastcgi++-2.0.tar.bz2][4]] [[Documentation][5]] [[Tree][11]]
45  - [[fastcgi++-1.2.tar.bz2][6]] [[Documentation][7]]
46  - [[fastcgi++-1.1.tar.bz2][8]]
47  - [[fastcgi++-1.0.tar.bz2][9]]
48 
49 [2]: http://download.savannah.nongnu.org/releases/fastcgipp/fastcgi++-2.1.tar.bz2
50 [3]: http://www.nongnu.org/fastcgipp/doc/2.1
51 [4]: http://download.savannah.nongnu.org/releases/fastcgipp/fastcgi++-2.0.tar.bz2
52 [5]: http://www.nongnu.org/fastcgipp/doc/2.0
53 [6]: http://download.savannah.nongnu.org/releases/fastcgipp/fastcgi++-1.2.tar.bz2
54 [7]: http://www.nongnu.org/fastcgipp/doc/1.2
55 [8]: http://download.savannah.nongnu.org/releases/fastcgipp/fastcgi++-1.1.tar.bz2
56 [9]: http://download.savannah.nongnu.org/releases/fastcgipp/fastcgi++-1.0.tar.bz2
57 [10]: https://github.com/eddic/fastcgipp/tree/2.1
58 [11]: https://github.com/eddic/fastcgipp/tree/2.0
59 [12]: https://github.com/eddic/fastcgipp/archive/master.zip
60 [13]: http://isatec.ca/fastcgipp
61 [14]: https://github.com/eddic/fastcgipp
62 
63 ## Building ##
64 
65 This should provide you with all the basic stuff you need to do to get fastcgi++
66 built and installed. The build system is CMake and the following instructions
67 assume you are in Bash.
68 
69 First we need to clone.
70 
71  git clone https://github.com/eddic/fastcgipp.git fastcgi++
72 
73 Then we make a build directory.
74 
75  mkdir fastcgi++.build
76  cd fastcgi++.build
77 
78 Now we need run cmake.
79 
80  cmake -DCMAKE_BUILD_TYPE=RELEASE ../fastcgi++
81 
82 Note that that was to do a release build. That means heavily optimized and not
83 good for debugging. If you want to do some debugging to either fastcgi++ or an
84 application you are developing that uses fastcgi++, do a debug build.
85 
86  cmake -DCMAKE_BUILD_TYPE=DEBUG ../fastcgi++
87 
88 Or if you want some really hardcore debug and diagnostics info
89 
90  cmake -DCMAKE_BUILD_TYPE=DEBUG -D LOG_LEVEL:INT=4 ../fastcgi++
91 
92 Now let's build the library itself.
93 
94  make
95 
96 Then we can build the documentation if we so desire.
97 
98  make doc
99 
100 Now let's install it all (doc included if it was built).
101 
102  make install
103 
104 Maybe we should build the unit tests?
105 
106  make tests
107 
108 And of course we should run them as well.
109 
110  make test
111 
112 And hey, let's build the examples to!
113 
114  make examples