qDecoder and qhttpd

In researching cgi/fcgi libraries for use with NODOWS, I came across qDecoder. This project is sincerely a hidden gem. I'd never heard of it before, but I wish I had. Its simple and straightforward, well thought-out and well documented.

So what is it? Its a C/C++ cgi / fcgi library. It includes a lot of functionality, and most of it would be very useful to almost any project. There were two functions that I needed that weren't included in qEntry.c, so I added them, and will submit them back to the project for their review. Another thing that makes this project a winner: the code is licensed under a BSD license. Its strange, but so many of the C cgi libraries and code I found had no license at all!

Because of its efficiency, simplicity, and its capabilities, I think that qDecoder is a perfect companion to NGINX, libxml2, and libxslt.

qhttpd
The qDecoder project also includes qhttpd, a web server with Lua hooks. I haven't explored qhttpd as much as qdecoder, mainly because I'm so pleased with NGINX, but I am interested in how it hooks up with Lua. In fact, for the time being, I'm holding off on integrating qDecoder into NODOWS and using Lua instead. Nothing against qDecoder - I'm basing the decision on convenience. Most of the Lua libraries I'm interested in are available in the stable debian packages, so that's the decision maker.

Once the NODOWS design becomes more specific, I may return to qDecoder to implement more of its main components. In the meantime, I definitely recommend checking it out. You might be very impressed!

By on February 22, 2009 7:00 PM

2 Comments

----------Build Started--------
"mingw32-make.exe" -j 2 -f "C_CPP_wsp.mk"
----------Building project:[ deneme - Debug ]----------
gcc -c "C:/C_CPP/deneme/qCgiRequest.c" -g -o ./Debug/qCgiRequest.o "-I." "-I."
gcc -c "C:/C_CPP/deneme/qCgiResponse.c" -g -o ./Debug/qCgiResponse.o "-I." "-I."
C:/C_CPP/deneme/qCgiRequest.c: In function `_parse_multipart':
C:/C_CPP/deneme/qCgiRequest.c:503: error: `S_IRGRP' undeclared (first use in this function)
C:/C_CPP/deneme/qCgiRequest.c:503: error: (Each undeclared identifier is reported only once
C:/C_CPP/deneme/qCgiRequest.c:503: error: for each function it appears in.)
C:/C_CPP/deneme/qCgiRequest.c:503: error: `S_IXGRP' undeclared (first use in this function)
C:/C_CPP/deneme/qCgiRequest.c:503: error: `S_IROTH' undeclared (first use in this function)
C:/C_CPP/deneme/qCgiRequest.c:503: error: `S_IXOTH' undeclared (first use in this function)
C:/C_CPP/deneme/qCgiRequest.c:503: error: too many arguments to function `mkdir'
C:/C_CPP/deneme/qCgiRequest.c: In function `_parse_multipart_value_into_disk':
C:/C_CPP/deneme/qCgiRequest.c:764: error: `S_IRGRP' undeclared (first use in this function)
C:/C_CPP/deneme/qCgiRequest.c:764: error: `S_IROTH' undeclared (first use in this function)
mingw32-make.exe[1]: *** [Debug/qCgiRequest.o] Error 1
mingw32-make.exe[1]: *** Waiting for unfinished jobs....
mingw32-make.exe: *** [All] Error 2
----------Build Ended----------
9 errors, 0 warnings


i m gettin this error do you have any idea about solution?
thanks

Hey asmcad - no clue! I've never used mingw...