WAFer

WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.

  • Owner: riolet/WAFer
  • Platform:
  • License:: GNU General Public License v2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Build Status

WAFer

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 function void server(Request request) in myserver.c and, make with make SERVER=myserver, and you are good to go.

WAFer can operate in many different configurations, all selected at compile time. They include:

  1. Single-threaded (Default) or multi-threaded (make with THREADS=n where n>0)

  2. Select(Default) or epoll (make with LOOP=epoll) based event loop

  3. C10K 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 example example.c to get you started.

Note to Contributors

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 \{\} \;

Acknowledgements

  1. J. David Blackstone and Feng Shen, whose web servers have been repurposed to build this platform.

  2. Mark Karpeles for the incredible number of bug fixes!

  3. Fine folks at /r/programming for the honest and constructive feedback.

Main metrics

Overview
Name With Ownerriolet/WAFer
Primary LanguageC
Program languageShell (Language Count: 4)
Platform
License:GNU General Public License v2.0
所有者活动
Created At2014-07-09 04:02:34
Pushed At2017-12-07 22:32:39
Last Commit At2017-12-07 14:32:38
Release Count1
Last Release Namev0.0.4-alpha (Posted on )
First Release Namev0.0.4-alpha (Posted on )
用户参与
Stargazers Count693
Watchers Count49
Fork Count68
Commits Count149
Has Issues Enabled
Issues Count30
Issue Open Count19
Pull Requests Count26
Pull Requests Open Count0
Pull Requests Close Count4
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private