Perl: Modules
You can download all these modules, they all licensed under usual perl license. Or your can install and update them from my CPAN mirror.
General purpose
- POWER::Utils
- Bundle of useful subroutines.
- POWER::Utils::HexDump
- Helpers for working with hex dumps: convert between hex dump and byte streams, diff hex dumps. Understand many hex dump formats.
- POWER::Utils::IO
- Make nonblocking I/O ease.
- POWER::Utils::Resource
- Provide information about used resources which may help with debugging or soft limiting resources usage.
- POWER::LOG
-
Output messages to log. Main features:
- Output to FILEHANDLE or syslog.
- Multiple loglevels.
- Configurable prefix with date/time/loglevel/etc.
- Very fast (you can notice slowdown if you'll send about 10000 lines per second into log).
- Multiple differently configured log objects as same time.
It's not recommended to use Sys::Syslog 0.19 to 0.24 with POWER::LOG, check this bug report. - POWER::Email
-
Send emails. Main features:
- Simple email templates.
- Attach files.
- Sign/encrypt with GPG.
- POWER::GPG
- Reliable and secure interface to GnuPG.
I/O (generation 3)
- POWER::Event
- Main 'event loop' for user's code.
- POWER::Event::IO (a.k.a. G3)
-
Async, event-based I/O. Main features:
- Very fast. Our experiments show 500 urls/sec average download speed.
- Epoll-based multiplexing.
- Timeouts.
- DNS resolving.
- SSL client/server.
- HTTPS proxy support.
- User have 100% control over I/O and can manually use any low-level operations he need (like setsockopt(), etc.).
- Support I/O stream objects (FIFO, TCP sockets, etc.); UDP sockets and listening sockets.
- POWER::Event::Timer
- Schedule callback execution after given timeout.
- POWER::Epoll
- Interface for epoll(4) in linux kernels 2.6+.
I/O (generation 2)
- POWER::Multi::GET
-
Fast parallel HTTP/HTTPS/FTP downloader. Main features:
- Simultaneous downloading of several URLs from single process, without threads usage.
- Simultaneous execution of several DNS requests without fork() or exec() using POWER::NB::Resolver.
- HTTP proxy support (global and per every url).
- HTTP support with/without HTTP proxy.
- FTP support only with HTTP proxy.
- GET and POST methods.
- Auto redirects.
- Full cookie support including expires.
- Request gzip'ed content to minimize download size and time.
- Traffic limitation.
- Independent processing of all the URLs:
- new URL could be added while processing other urls,
- URL could be deleted from processing at any time (for ex. if you see something in http-header you can stop downloading this URL without wait for complete downloading this URL).
- Low CPU loading.
- Handle all prossible errors.
- Powerful timeout configuration.
- Number of simultaneous downloading URLs can be configured.
- POWER::SSL
- SSLv3 client (pure perl). Documentation in russian.
- POWER::NB::IO
- Non-blocking input/output for files and TCP/UDP sockets. Documentation in russian.
- POWER::NB::Resolver
- Non-blocking parallel DNS resolver. Documentation in russian.
CGI
- POWER::iCGI
-
HTML templates support for CGI scripts. Main features:
- Simple HTML templates with perl code.
- Compile time errors or die() messages can be optionally sent to web browser. And they have correct line numbers even for errors happens inside HTML templates.
- Configurable HTTP headers and cookies.
- HTTP redirects.
- File download (CGI send files to web browsers).
- mod_perl support (external *.pl files with user functions automatically reloaded into memory if changed on hard drive).
- POWER::SQL
- Generate basic SQL queries from CGI parameters in safe and secure way. Documentation in russian.
- POWER::Tree
-
Show tree similar to Windows Explorer directory tree.
Example. Main features:
- Any operations (add/del/move/get/set/find) on tree-like structure which leaf can contain any data.
- Converting tree into list (for output into HTML or plain text) support open/closed nodes, any node as root, etc.
- No JavaScript required to render tree on HTML page.
HTML parsing
- Regexp::Common::Fast
- Speedup CPAN module Regexp::Common by adding regexp caching.
- Regexp::Common::RealHTML
- Provide regexp for parsing HTML in way similar to web browsers (i.e. non-standard compliant!). Documentation in russian.