Wanage and Warabe - APIs for server-side Web applications
Wanage and Warabe are lightweight protocol-wrapper API layers for building server-side Web applications.
+------+ +------+ +------+ +------+ +------+
|Your |<->|Warabe|<->|Wanage|<---->|HTTP |<---->|HTTP |
| App.| +------+ | | CGI |server| HTTP |client|
| |<------------>| | PSGI | | | |
+------+ +------+ +------+ +------+
App. Common Generic TCP/HTTP
specific Web app. HTTP protocol
logic operations interpret. handling
As shown in the figure, Warabe is an optional component build on top of Wanage.
They are not Web application frameworks (WAFs). They only provide abstraction for interpretation of HTTP requests and construction of HTTP responses in the level enough to create Web applications by just understanding how HTTP works, without learning bulk of WAF-specific APIs. They does not define how you organize your Web application. They can be used in conjection with a random Perl WAF, as long as it does not prevent you from accessing raw HTTP requests and/or responses, if desired.
Latest version of these modules are available in the Git repository: <https://github.com/manakai/wanage>.
There are no longer snapshot release version tarballs for Wanage and Warabe. You can just add the repository as a Git submodule of your Git repository, if your application is using Git.
These modules require Perl 5.14.2 or later.
In addition, they require a few non-core Perl modules: Exporter::Lite; Path::Class; List::Ish (in the modules/perl-ooutils
submodule); Web::Encoding and other modules from the <https://github.com/manakai/perl-web-url> repository); Web::URL and other modules from the <https://github.com/manakai/perl-web-encodings> repository).
They also require a Perl promise implementation (e.g. Promise from the <https://github.com/manakai/perl-promise> repository) if you would like to use promise-related features.
Optional modules such as Warabe::App::Role::*
might require additional Perl modules; see relevant documentations and source codes of those modules.
Wakaba <[email protected]>.
This repository was originally located at <https://github.com/wakaba/wanage>, which has been transferred to the manaki project on November 16, 2021.
Copyright 2012-2021 Wakaba <[email protected]>.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.