The Flash Web server is a high-performance Web server developed using
a novel concurrency architecture. It combines the high performance of
single-process event-driven servers on cached workloads with the
performance of multi-process and multi-threaded servers on disk-bound
workloads. Furthermore, the Flash Web server is easily portable since
it achieves these results using facilities available in all modern
The Flash Web Server is described in detail in the paper "Flash: An efficient and
portable Web server." Note that the current release is version 0.1
alpha, an experimental release. It is currently experimental software
and is not intended for production use in its present form.
Flash is one of the fastest portable Web servers available.
Furthermore, it is one of the few Web servers in its class that is
available in source form.
The source code is small enough that it can be understood within a
week by a senior undergraduate or early graduate student. As such,
Flash is suitable for course projects.
The Flash Web Server has been compiled and run on
The Flash Web Server was initially developed at Rice University by
Vivek Pai under the direction of Peter Druschel and Willy Zwaenepoel.
Further development has continued at Princeton University by Vivek Pai
and his students.
Flash is NOT under the GPL or its variants - please read this
section carefully. We are licensing the Flash Web Server free of
charge to individuals at universities for non-commercial
academic use and to non-profit entities for non-commercial
use. Any other use requires obtaining a license from the Rice
University Office of Technology Transfer [email@example.com]
In short, if you are using the Flash server at a company in any capacity, then you must negotiate a license with the Rice University Office of Technology Transfer. Likewise if you are using it in any commercial capacity.
The Flash Web Server is copyrighted software and can NOT be
redistributed. Please see the copyright notice
for more details regarding the license terms and copyrights.
The Flash Web Server version 0.1a package
includes all of the source files necessary to build the server. If
you download the source-only version, we assume the availability of
the gcc compiler or its equivalent, along with the gnumake
utility. For more details, see the README file
including with the package. Unpacking the files requires the gunzip
and tar programs.
Note that the code released here has not been state-of-the-art for some time - it uses the standard select system call (not scalable), it uses writev instead of sendfile (more data copies), and uses far more mapped regions than is advisable. To download the package, please go here. Please do so only if you provably meet the requirements for the free version of the license. Commercial inquiries should be directed to the Office of Technology Transfer at Rice University.
To do a reasonable job of benchmarking, particularly on Linux, please
take the following steps:
Vivek S. Pai
Princeton University CS Department
35 Olden Street
Princeton, NJ 08544