A Perl module to throttle anything
Perl
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib/Schedule
t
Changes
MANIFEST
Makefile.PL
README
ignore.txt

README

Schedule::AdaptiveThrottler

This module is a simple and rather generic throttler that can be used to allow
or deny anything based on a set threshold of arbitrary criteria.  Although it
is not very clear, the POD will make more sense when you have a look at it. In
short, it was designed to prevent DoS attacks on web services and brute-force
password cracking in web forms, but it can do a lot, lot more.  There is only
one prerequisite: the storage works with a memcached instance, but could work
with pretty much any key/value store, provided the get() and set() calls work
the same way as the memcached modules implement it.

INSTALLATION

To install this module, run the following commands:

	perl Makefile.PL
	make
	make test
	make install

To test properly you can use a real memcached server. On a Unix box, it can be
as simple as running:
    
    memcached -d
    MEMCACHED_SERVERS=localhost:11211 make test

But you can also use the built-in mock memcached object, that relies on an
in-memory DB_File. This is the default 'make test' behaviour.

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc Schedule::AdaptiveThrottler

You can also look for information at:

    RT, CPAN's request tracker
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Schedule::AdaptiveThrottler

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/Schedule::AdaptiveThrottler

    CPAN Ratings
        http://cpanratings.perl.org/d/Schedule::AdaptiveThrottler

    Search CPAN
        http://search.cpan.org/dist/Schedule::AdaptiveThrottler/

LICENSE AND COPYRIGHT

Copyright (C) 2010 David Morel
Copyright (C) 2010 Booking.com

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.