Daisuke Murase

NAME

AnyEvent::JSONRPC::Lite - Simple TCP-based JSONRPC client/server

SYNOPSIS

    use AnyEvent::JSONRPC::Lite;
    
    my $server = jsonrpc_server '127.0.0.1', '4423';
    $server->reg_cb(
        echo => sub {
            my ($res_cv, @params) = @_;
            $res_cv->result(@params);
        },
    );
    
    my $client = jsonrpc_client '127.0.0.1', '4423';
    my $d = $client->call( echo => 'foo bar' );
    
    my $res = $d->recv; # => 'foo bar';

DESCRIPTION

This module provide TCP-based JSONRPC server/client implementation.

AnyEvent::JSONRPC::Lite provide you a couple of export functions that are shortcut of AnyEvent::JSONRPC::Lite::Client and AnyEvent::JSONRPC::Lite::Server. One is jsonrpc_client for Client, another is jsonrpc_server for Server.

WHY I NAMED "Lite" TO THIS MODULE

This module implement only JSONRPC 1.0's TCP part, not HTTP protocol, and not full of JSONRPC 2.0 spec. But I think this is enough as simple RPC client/server, so I don't want to implement 2.0 things at this point.

That's why this module name is AnyEvent::JSONRPC::Lite, not AnyEvent::JSONRPC (this should be full-spec)

FUNCTIONS

jsonrpc_server $address, $port;

Create AnyEvent::JSONRPC::Lite::Server object and return it.

This is equivalent to:

    AnyEvent::JSONRPC::Lite::Server->new(
        address => $address,
        port    => $port,
    );

See AnyEvent::JSONRPC::Lite::Server for more detail.

jsonrpc_client $hostname, $port

Create AnyEvent::JSONRPC::Lite::Client object and return it.

This is equivalent to:

    AnyEvent::JSONRPC::Lite::Client->new(
        host => $hostname,
        port => $port,
    );

See AnyEvent::JSONRPC::Lite::Client for more detail.

SEE ALSO

AnyEvent::JSONRPC::Lite::Client, AnyEvent::JSONRPC::Lite::Server.

http://json-rpc.org/

AUTHOR

Daisuke Murase <typester@cpan.org>

COPYRIGHT AND LICENSE

Copyright (c) 2009 by KAYAC Inc.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this module.




Hosting generously
sponsored by Bytemark