Fork of WebGUI 7.10, maintained by Oqapi https://git.oqapi.nl/oqapi/webgui
Find a file
2010-09-07 12:44:11 -05:00
docs Merge branch 'WebGUI8' of github.com:plainblack/webgui into WebGUI8 2010-08-27 13:41:36 -05:00
eg
etc updated facebook auth to work with new facebook change/brokeness 2010-09-01 12:16:05 -05:00
lib remove WebGUI::Utility::sortHash 2010-09-07 12:44:11 -05:00
sbin remove WebGUI::Utility::isIn 2010-09-07 12:33:15 -05:00
share move upgrade scripts for new version 2010-09-01 11:16:12 -05:00
t remove WebGUI::Utility::isIn 2010-09-07 12:33:15 -05:00
www add openTab function for admin plugins 2010-08-31 16:09:07 -05:00
.gitignore
.perltidyrc
.proverc
app.psgi
asset_status.ods
benchmark.pl
README
TODO
WebGUI-Session-Plack.pm

This is the PSGI branch of WebGUI8

To try this out:

 1) Run testEnvironment.pl to install Plack
 2) $ cd <WebGUI directory>
 3) $ plackup app.psgi

Currently, the best performance is achieved via:

 plackup -E none -s Starman --workers 10 --disable-keepalive

You can benchmark your server via:

 ab -t 3 -c 10 -k http://dev.localhost.localdomain:5000/ | grep Req

I'm currently getting 370 requests/second, whereas I'm getting 430/second on the non-PSGI WebGUI8 branch.

= ARCHITECTURE =

* The root level app.psgi file loads all the config files found and
  loads the site specific psgi file for each, linking them to the
  proper host names.
* The site psgi file uses the WEBGUI_CONFIG environment variable to find the config.
* It instantiates the $wg WebGUI object (one per app).
* $wg creates and stores the WebGUI::Config (one per app)
* $wg creates the $app PSGI app code ref (one per app)
* WebGUI::Middleware::Session is wrapped around $app at the outer-most layer so that it can open and
  close the $session WebGUI::Session. Any other wG middleware that needs $session should go in between
  it and $app ($session created one per request)
* $session creates the $request WebGUI::Session::Request and $response WebGUI::Session::Response
  objects (one per request)