Skip to content

manakai/wanage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Wanage and Warabe - APIs for server-side Web applications

DESCRIPTION

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.

SEE ALSO

Wanage::HTTP.

Warabe::App.

DISTRIBUTION

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.

DEPENDENCIES

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.

AUTHOR

Wakaba <wakaba@suikawiki.org>.

HISTORY

This repository was originally located at <https://github.com/wakaba/wanage>, which has been transferred to the manaki project on November 16, 2021.

LICENSE

Copyright 2012-2021 Wakaba <wakaba@suikawiki.org>.

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

Releases

No releases published

Packages

No packages published