- Notifications
You must be signed in to change notification settings - Fork68
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.
License
riolet/WAFer
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
WAFer is a C language-based ultra-light scalable server-side web applications framework. Think node.js for C programmers. Because it's written in C for the C eco system, WAFer is wafer-thins with a memory footprint that is only a fraction of that of node.js and other bulky frameworks.
Just copy server.c (say, as myserver.c), put your code inside the functionvoid server(Request request)
inmyserver.c
and, make withmake SERVER=myserver
, and you are good to go.
WAFer can operate in many different configurations, all selected at compile time. They include:
Single-threaded (Default) or multi-threaded (make with
THREADS=n
where n>0)Select(Default) or epoll (make with
LOOP=epoll
) based event loopC10K mode (make with
LOOP=epoll MAX_CON_CONS=n
where n>10,000)
Default port is 4242. Set environment variable 'PORT' to change it.
That's really it. The source comes with a simple exampleexample.c
to get you started.
Thank you for making this a wonderful project!
Here's our preferred formatting style:
find . \( -name '*.c' -o -name '*.h' \) -exec indent --no-tabs --linux-style --line-length 90 --indent-level 4 -bli0 \{\} \;
J. David Blackstone andFeng Shen, whose web servers have been repurposed to build this platform.
Mark Karpeles for the incredible number of bug fixes!
Fine folks at /r/programming for the honest and constructive feedback.
About
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.