raku-community-modules / HTTP-Easy

Make HTTP servers (with PSGI support) easily with Raku
Artistic License 2.0
16 stars 19 forks source link

Actions Status

NAME

HTTP::Easy - HTTP servers made easy, including PSGI

SYNOPSIS

use HTTP::Easy;

DESCRIPTION

Raku libraries to make HTTP servers easily.

This was inspired by HTTP::Server::Simple, but has a very different internal API, and extended functionality. It's been designed to work well with the Web::App and SCGI libraries.

HTTP::Easy

A role to build HTTP daemon classes with. This provides the framework for parsing HTTP connections.

HTTP::Easy::PSGI

A class consuming the HTTP::Easy role. This builds a PSGI environment, and passes it onto a handler. The handler must return a PSGI response:

[ $status, @headers, @body ]

This can be used as an engine in the Web::App library.

Example

use HTTP::Easy::PSGI;
my $http = HTTP::Easy::PSGI.new(:port(8080));

my $app = sub (%env) {
    my $name = %env<QUERY_STRING> || "World";
    [ 200, [ 'Content-Type' => 'text/plain' ], [ "Hello $name" ] ]
}

$http.handle($app);

TODO

Implement HTTP/1.1 features such as Transfer-Encoding, etc.

AUTHOR

Timothy Totten

COPYRIGHT AND LICENSE

Copyright 2011 - 2017 Timothy Totten

Copyright 2018 - 2022 Raku Community

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.