Fork of WebGUI 7.10, maintained by Oqapi https://git.oqapi.nl/oqapi/webgui
Find a file
Doug Bell 8bd28e101f update Copy to work with ProgressBar and streaming
ProgressBar needs to handle streaming itself. When it does, all
AssetHelpers that use ProgressBar will need to remove their own
streaming handlers and just use ProgressBar's
2010-08-04 12:07:55 -05:00
docs
eg
etc missing admin in conf, fixed color on starter 2010-08-03 13:48:35 -05:00
lib update Copy to work with ProgressBar and streaming 2010-08-04 12:07:55 -05:00
sbin
share add new progressbar template 2010-08-04 11:57:56 -05:00
t
www remove bad background image 2010-08-03 13:58:43 -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)