Perinci - Collection of Perl modules for Rinci and Riap
Perinci::Sub::Wrapper is the subroutine wrapper which implements/enforces many of the metadata properties, like argument validation (using information in
args) as well as offers features like assign default values, convert argument passing style, automatically envelope function result, etc.
It is extensible so you can implement wrapper for your properties too.
Riap clients and servers (Perinci::Access::*)
Perinci::Access::Perl is a client/server (well, neither really, since everything is in-process) to access Perl modules/functions using the Riap protocol. It is basically a way to call your modules/functions using URI syntax; it also dictates a bit on how you should write your functions and where to put the metadata, though it provides a lot of flexibility.
Perinci::Access::Simple::Client, Perinci::Access::Simple::Server::Socket, Perinci::Access::Simple::Server::Pipe are client/server libraries that implement Riap::Simple, either via TCP/Unix socket or piping.
Perinci::Access is a simple wrapper for all Riap clients, you give it a URL/module name/whatever and it will try to select the appropriate Riap client for you.
Perinci::CmdLine is an extensible and featureful command-line library to create command-line programs and API clients. Features include: transparent remote access (thanks to Riap), command-line options parsing, --help message, shell tab completion, etc.
These are convenient tools to generate common/generic function and/or metadata. For example, Perinci::Sub::Gen::AccessTable can generate accessor function + metadata for table data.
See CPAN for more
See CPAN for more Perinci::* modules.
To get started, read Perinci::Manual::Tutorial.
None are exported by default, but they are exportable.
Perinci is taken from Indonesian word, meaning: to specify, to explain in more detail. It can also be an abbreviation for "Perl implementation of Rinci".
Please visit the project's homepage at https://metacpan.org/release/Perinci.
Source repository is at https://github.com/sharyanto/perl-Perinci.
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Perinci
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
Steven Haryanto <firstname.lastname@example.org>
This software is copyright (c) 2013 by Steven Haryanto.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.