NAME
ReRe - Simple Redis Rest Interface
VERSION
version 0.021
SYNOPSIS
Console
# authentication by ip address.
curl -L http://127.0.0.1:3000/redis/set/foo/bar
{"set":{"foo":"bar"}}
curl -L http://127.0.0.1:3000/redis/get/foo
{"get":{"foo":"bar"}}
curl -L http://127.0.0.1:3000/redis/info
{"info":{"last_save_time":"1306939038", ... }}
# authentication by http basic.
curl --basic -u 'userro:userro' -L http://127.0.0.1:3000/redis/get/foo
{"get":{"foo":"bar"}}
# JSONP Callback.
curl --basic -u 'userro:userro' -L
http://127.0.0.1:3000/redis/get/foo\?callback=MyCB
MyCB( {"get":{"foo":"bar"}} )
Perl
use ReRe::Client;
my $conn = ReRe::Client->new(
{ url => '127.0.0.1:3000',
username => 'userro',
password => 'userro'
} );
$conn->set( 'foo', '2' );
$conn->get('foo')
See ReRe::Client for more information.
DESCRIPTION
ReRe is a simple redis rest interface write in Perl and Mojolicious,
with some features like:
What is ReRe ?
Access your Redis database directly from Javascript.
Allows you to plugin other technologies: caching via varnish, proxying
via HAProxy, authentication for APIs, etc. because HTTP is well
supported.
Access control list for methods of redis ;
Support to run as daemon (simple web-server), CGI, FastCGI or PSGI ;
HTTP Basic Auth security
Support for GET and POST.
Support for JSONP.
HTTP 1.1 pipelining (fastcgi and psgi)
CIDR authentication
Bad support for Websockets
Hooking, you can alter the behavior of an request method.
ReRe::Client for write client applications in Perl.
REST interface to make your life easy in some world ;
Simple to install and use
What is not ReRe ?
Please, don't use this application if ...
If you are looking for a local database for cache or key-value
If you are looking for performance.
Configuration
users.conf
password userro
roles get
password userrw
roles get set info
allow 127.0.0.1
password userall
roles all
allow 192.168.0.0/24
roles get info
server.conf
host 127.0.0.1
port 6379
hooks Log
Hooks
You can alter the behaivor of any method or create your own.
Example
package ReRe::Hook::MyHook;
use Moose::Role;
sub _hook {
my $self = shift;
my $method = $self->method;
my $args = $self->args;
my $conn = $self->conn;
if ( $method eq 'set' ) {
my ( $key, $value ) = @{$args};
if ( $key eq 'immutable' ) {
return { err => 'this object is immutable' }
}
if ( $key eq 'semaphoro' ) {
my $new_value = 0;
$new_value = 1 if $value eq 'red';
return $self->conn->set($key, $new_value)
}
}
return 0; # if you want to process the origin method.
}
1;
Documentation
More information, you can read in .
Development
ReRe is a open source project for everyone to participate. The code
repository is located on github. Feel free to send a bug report, a pull
request, or a beer.
METHODS
start
Start ReRe.
process
Process the request to redis server.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc ReRe perldoc ReRe::Config perldoc ReRe::Server perldoc
ReRe::User
You can also look for information at:
* RT: CPAN's request tracker
* AnnoCPAN: Annotated CPAN documentation
* CPAN Ratings
* Search CPAN
AUTHOR
Thiago Rondon
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Thiago Rondon.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.