william-os4y edited this page Sep 13, 2010 · 42 revisions
Clone this wiki locally

Welcome to the fapws3.


His name is an acronyme of Fast Asyncronous Python WSGI Server. The “3” means that this is the third version I’ve made.

For the one who would know the historic, the 1st version was based on pyevent (this was fapws1). The second version (fapws2) was written in C with a direct binding to libevent. The current version (fapws3) is written in C with a direct binding to libev. Becareful because I’m no more maintaining Fapws2 (Fapws1 was never public).

The main objective of Fapws is to be the fastest and the lightest WSGI python webserver. You can run your own benchmarks, but you will see that, for static files, Fapws is comparable to other asynchronous webservers (lighttpd, nginx, …); for pure python code, Fapws performance is linked to your python application’s performance.

Because of his caracteristics, I run, for one website, several Fapws instances. One for static files and several for python code. I’m using pound to spread the load amongst the different instances of Fapws.
All in all I’m able to run several websites on very low end linux servers (virtual machines with 64MB of Ram).

Fapws features

Fapws support HTTP 1.0 (not yet HTTP 1.1)

Fapws support POST, GET, HEAD and OPTIONS, but you can implement your own HTTP commands.

implement HTTP 1.1

- I do not plan to implement a reverse proxy within Fapws

- I do not plan to implement HTTPS into Fapws; pound can do that easily for you.

- Fapws is compliant with the PEP 333 describing wsgi

- Fapws can run on his own or can server Django 0.9.x and 1.0.x

- Yes Fapws3 is stable. I have instances running on internet more than 3months without any issues.

If you want to see it running, please check this: http://fapws3.vmrt.homelinux.com/

Public websites running Fapws
- Django photo library: http://d200.vmrt.homelinux.com:81/. One Fapws3 instance served by pound.

- Gurt: http://gurt.org.ua/. This site runs 4 Fapws2 instances and is served by ngnix. Site got up to 4000 requests per day.

- HCB: http://www.hannut-chapter.be/. One Fapws3 instance served by pound. Up to 1500 requests per day.

- Ebay is using Fapws3 for some of their webservices.