OKWS -- The OK Web Server
OKWS is a Web server, specialized for building fast and secure Web services. It provides Web developers with a small set of tools that has proved powerful enough to build complex systems with limited effort. Despite its emphasis on security, OKWS shows performance advantages relative to popular competitors. Commercial experience with OKWS suggests that the system can reduce hardware and system management costs, while providing security guarantees absent in current systems.
As of 8 Dec 2011, OKWS is still being maintained and worked on, with 3.1 being the active development version. There are no big feature-development plans on the horizon, but we're regularly committing bugfixes and extensions.
1 Dec 2011
- Move everything over to GitHub for primary project hosting!
See our News file for a fuller list of updates.
A Better Architecture
The basic idea behind OKWS is that each Web service you write (such as ''search'' or ''newsletter-subscribe'') should run as a single process. There is no reason to sprinkle the same program across hundreds of address spaces just to get client concurrency. OKWS is built with this principle in mind. A Web service in OKWS is compiled into a free-standing process, calling upon our boilerplate libraries. Other standard helper processes run on the system, to direct traffic, to launch and relaunch applications should they crash, to log HTTP transactions to disk, and to access static HTML templates.
Programming in OKWS follows the single-threaded, event-driven model. No need to worry about the synchronization snafus that creep up when using multi-threaded or multi-process Web servers.
Who Runs OKWS?
Some example sites include:
OKWS runs on most Unixes, and has been tested extensively on FreeBSD and Linux.
Though OKWS is event-based at its core, A new tool, that is entirely compatible with existing libasync-based code, is [[sfslite::tame2]], which we urge you to read more about. It's a simple C++-level rewriter that makes your event code look more like threaded coded. I.e., you can make a sequence of serial blocking functions within one function body.
OKWS is freely available under a GPL v2 license.
Our GitHub Wiki Documentation Center
- Max Krohn
- Mike Maxim
- David Koh
- Eli Gwynn
- Ben Hollenstein
- Ian Rickard (Apple Darwin Patches)
- Michael Walfish (various patches and fixes for API problems).
- Benjie Chen
- OkCupid team, including Mike Nahas, Tom Quisel, Mike Maxim, Tom Jacques, and Eli Gwynn.