Sloop is a single thread, asynchronous, linux (epoll) based HTTP 1.1 server with a perl interface. It was written from the ground up in perl and C, and uses a event driven API similar to node.js, by which it was inspired. It also resembles standalone Plack, with more high level feature integration in place of PSGI support.

use strict;
use warnings;

use Sloop::Server;

my $Sloop = Sloop::Server->new();

my $page = <<END;
<!DOCTYPE html>
    <h1>Hello World</h1>

$Sloop->{handlers} = {
    '/' => sub {
        my $client = shift;


Requests are handled by cascading through the handlers hash. Some other features:

There is no configuration to deal with beyond coding; sloop is composed of various object oriented modules. Part of the goal is to provide a useful foundation for web sites and applications, including:

Sloop maintains a slim, stable memory profile over time and is very efficient; on a fast core it will handle simple requests like the example above thousands of times per second.