Rand Stats

FastCGI

github:raku-community-modules

FastCGI for Raku

A library for building web applications using FastCGI in Raku. Uses a PSGI-compliant interface by default, so you can use it with any PSGI-compliant frameworks, such as WWW::App.

Status

Basic functionality works, but is currently fairly slow using the pure source implementation of the FastCGI protocol.

I haven't done any extensive testing using input streams or error streams.

Example

Currently the use of the handler() call is required. More advanced use, such as with the new SCGI is planned, but will require some significant refactoring.

use FastCGI;

my $fcgi = FastCGI.new( :port(9119) );

my $handler = sub (%env) 
{
  my $name = %env<QUERY_STRING> || 'World';
  my $status = '200';
  my @headers = 'Content-Type' => 'text/plain';
  my @body = "Hello $name\n";;
  return [ $status, @headers, @body ];
}

$fcgi.handle: $handler;

Requirements

This requires a Raku implementation that can export constants, and has the pack() and unpack() methods with at least 'C', 'n', 'N', and 'x' format codes supported.

TODO

Author

This was build by Timothy Totten. You can find me on #raku with the nickname supernovus.

License

Artistic License 2.0