Today I found web-framework written in ANSI C - G-WAN.
I like it, but it is not open source and maintained only by one developer. I am afraid of using it in production.
Do you know any more serious frameworks, that allow to write web services in ANSI C?
I am interested only in ANSI C, not C++.
UPD: I googled Raphters framework. Now I am cheking it out.
Working on G-WAN, I also value the ability to use C for a server.
Your pick, Raphters
(like Nginx
by the way), was also started "by one developer only".
But Raphters
started in 2011 (is it more mature than G-WAN starting in 2009?) and the last update is almost one year old (is it better maintained than G-WAN?).
The author of Raphters says "G-WAN comes with more though". He might know better than us.
If you are looking for "any more serious frameworks, that allow to write web services in ANSI C" then look at Tuxedo
, developed by AT&T in the 1980s.
After 30 years, Tuxedo
is 'mature', 'well-maintained', and ORACLE (the new owner) is most probably here to stay.
But Tuxedo
does not provide the performance of G-WAN (850,000 TPS
). Below is the same weightp
test on the same machine for Tuxedo
(15,000 TPS
and quickly dying despite the powerful hardware):
Concurrency / min / average / max
---------------------------------
1, 5477, 6151, 8161
10, 7894, 11416, 15451
20, 8177, 11894, 15578
30, 10064, 13246, 15499
40, 1, 909, 8885
50, 1, 18, 130
60, 1, 1, 1
70, 1, 1, 1
80, 1, 1, 1
90, 1, 1, 1
100, 1, 1, 1
An ApacheBench
(AB) test of Tuxedo
confirms the test above (AB is slower than weighttp
used above):
ab -n 100000 -c 10 -k "http://127.0.0.1:8080/"
Server Software: Oracle
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /
Document Length: 266 bytes
Concurrency Level: 10
Time taken for tests: 12.462 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 0
Total transferred: 48400000 bytes
HTML transferred: 26600000 bytes
Requests per second: 8024.45 [#/sec] (mean)
Time per request: 1.246 [ms] (mean)
Time per request: 0.125 [ms] (mean, across all concurrent requests)
Transfer rate: 3792.80 [Kbytes/sec] received
Looking at this, maybe you understand why G-WAN was created by its author: he could not find any Web framework able to port the Windows Desktop applications
of his company to Web applications
marketed as SaaS.