Skip to content
50

Awesome Perl

A curated list of awesome Perl frameworks and libraries. Come on Pull Requests!

710 stars104 forks302 entriesLast push Aug 7, 2024 (2 years ago)License MIT

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Another module list

Task::Kensho

Perlres - A list of resources about Perl

PerlMaven.com list of Perl Software

Slaven's CPAN in a nutshell

Args

Data::Validator

Rule based validator on type constraint system.

Params::Util

Simple, compact and correct param-checking functions.

Params::ValidationCompiler

Validate method/function parameters.

Smart::Args

Audio

Audio::CD

Interface to libcdaudio (cd + cddb)

Audio::Wav

Modules for reading & writing Microsoft WAV files.

Audio::SndFile

Perl library for reading and writing sound files

Audio::Ao

A Perl wrapper for the Ao audio library

MIDI::ALSA

the perl ALSA library, plus some interface functions

Audio >DSP

Audio::Analyzer

Demodulate Audio through FFT and perl!

Audio::Analyzer::ToneDetect

Detect freq of tones in an audio file or stream

Benchmarks

Benchmark

Dumbbench

Parallel::Benchmark

Benchmark in multiprocesses

Caches

CHI

Unified cache handling interface, think DBI for caches

CHI::Driver::DBI

DBI driver for CHI

CHI::Driver::DBIC

DBIx::Class driver for CHI

CHI::Driver::Memcached

Memcached driver for CHI

CHI::Driver::MongoDB

MongoDB driver for CHI

CHI::Driver::Redis

Redis driver for CHI

Catalyst::Plugin::Session::Store::CHI

Use CHI module to handle storage backend for session data

CGI::Application::Plugin::CHI

CGI-App plugin for CHI caching interface

Mojolicious::Plugin::CHI

Interact with CHI caches

Class Builder

Class::Accessor::Lite

Simple accessor generator.

Class::Accessor::Lite::Lazy

Generate lazy accessors.

Homer

Simple Prototype-based object system.

Mo

Micro Objects. Mo is less.

Moo

Class builder supporting meta programming.

Moose

The one and only, Moose.

Mouse

Yet another class builder like Moo/Moose.

Object::Pad

class Example { has $x; method reader { return $x } }, experimental proving-ground for Cor

Object::Tiny

A class builder that is terse, fast, and tiny.

CLI

App::Cmd

Write command line apps with less suffering.

Getopt::Long

Extended processing of command line options.

Cloud

AWS::CloudFront

Lightweight interface to Amazon CloudFront CDN

AWS::S3

Lightweight interface to Amazon S3 (Simple Storage Service)

Net::Amazon::EC2

Interface to the Amazon Elastic Compute Cloud (EC2) environment.

Net::AWS::SES

Perl extension that implements Amazon Simple Email Service (SES) client

WebService::DigitalOcean

Access the DigitalOcean RESTful API (v2)

WebService::Dropbox

Interface to Dropbox API

Cryptography

Bitcoin::Crypto

Bitcoin cryptography in Perl

CryptX

Cryptographic toolkit

Commercial WebServices

Net::Xero

Interface to Xero accounting

PagerDuty::Agent

A perl PagerDuty client

WebService::Spotify

A simple interface to the Spotify Web API

WebService::Xero

Access Xero Accounting Package Public and Private Application API

WWW::Shopify

object representing acess to a particular Shopify store

WWW::Spotify

Spotify Web API Wrapper

Container

Object::Container

Data Format

BSON

Binary JSON format

CBOR::Free

Support for CBOR, IETF’s “binary JSON”

Data::Dumper::Simple

Reduce and faster Data::Dumper and eval() equivalent

Data::MessagePack

JSON::PP

JSON::XS

Sereal

Storable

Text::CSV

Text::CSV_XS

Text::Markdown

TOML

XML::LibXML

XML::Compile::Schema

Interpret schema elements and types: create processors for XML messages.

XML::Compile::SOAP

Implements the SOAP 1.1 protocol, client side.

XML::Compile::WSDL

Use SOAP with a WSDL version 1.1 communication specification file.

YAML

Database

DBI

DBIx::Connector

Fast, safe DBI connection and transaction management

DBIx::Handler

Fork-safe DBI handler

DBIx::Inspector

DBIx::QueryLog

DBIx::Sunny

Useful DBI Wrapper

DBIx::TransactionManager

Database Drivers >Relational Databases

DBD::CSV

DBD::Firebird

DBD::MariaDB

MariaDB and MySQL driver for the Perl5 Database Interface (DBI)

DBD::mysql

DBD::ODBC

Any ODBC Driver. MS-SQL w/ placeholders

DBD::Oracle

Oracle database driver for the DBI module

DBD::Pg

PostgreSQL driver for DBI.

DBD::SQLite

DBD::Sybase

Sybase and MS-SQL. No placeholders w/ MS-SQL though

Database Drivers >NoSQL Databases

Cache::Memcached::Fast

Mango

Pure-Perl non-blocking I/O MongoDB driver

Redis

Redis::Fast

Perl wrapper around hiredis driver

Search::Elasticsearch

Offical Elasticsearch client library

UnQLite

Date & Time

DateTime

Time::Moment

Time::Piece

Devices

Device::SerialPort

Generic Serial Port library for serial line communication

Device::Modem

Talk to modem devices conneted via serial port

Device::Onkyo

Control Onkyo/Integra AV equipment via LAN or Serial

Chipcard::PCSC::Card

Control Smart card using perl and PCSC

Device::XBee::API

Control XBee Device using pure perl code

Device::Firmata

module for controlling Firmata devices like Arduino

DevOps Tools

Rex

Remote Execution

Email

Email::Sender

Email::Reply

Email::Stuffer

Event Loops

AE

Simpler, faster, newer AnyEvent API

AnyEvent

the DBI of event loop programming

EV

Uses libev, very fast and popular. Default for AnyEvent if present

Event

Works well, but older

IO::Async

Asynchronous event-driven programming

POE

Common interface for several event loops

Promise::XS

Promises in Perl

Exception Handling

autodie

Replace functions with ones that succeed or die with lexical scope

Exception::Class

A module that allows you to declare real exception classes in Perl

Syntax::Keyword::Try

a try/catch/finally syntax for perl

Throwable

a role for classes that can be thrown

Try::Tiny

minimal try/catch with proper preservation of $@

TryCatch

first class try catch semantics for Perl, without source filters

DOM Manipulation

HTML5::DOM

Super fast html5 DOM library with css selectors (based on Modest/MyHTML).

File Manipulation

File::Util

Easy, versatile, portable file handling.

Path::Tiny

Simple object-oriented file manipulation.

Form Frameworks

Catalyst::Controller::HTML::FormFu

Use HTML::FormFu in Catalyst.

CGI::FormBuilder

Easily generate and process stateful forms.

Form::Sensible

A sensible way to handle form based user interface.

Form::Tiny

Forms reusing Type::Tiny type constraints.

Form::Toolkit

A toolkit to build Data centric Forms.

HTML::FormFu

HTML Form Creation, Rendering and Validation Framework.

HTML::FormFu::ExtJS

ExtJS form generation from HTML::FormFu config files.

HTML::FormHandler

HTML forms using Moose.

Mojolicious::Plugin::FormFields

Lightweight, flexible form builder with validation and filtering.

WWW::Form

Simple and extendable module that allows developers to handle HTML form input validation and display flexibly and consistently.

Images

Image::Magick

An object-oriented interface to ImageMagick's image composing libraries.

Imager

GD

Interface to Gd Graphics Library

Image::Info

Get image informations

Image::PNG::Libpng

Perl interface for libpng

Graphics::TIFF

Perl wrapper for libtiff

Image::BMP

Perl bitmap image parser and viewer

List Manipulation

Array::Unique

Tie-able array that allows only unique values

List::AllUtils

Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package

List::Compare

Compare elements of two or more lists

List::Gen

Provides functions for generating lists

List::MoreUtils

Provide the stuff missing in List::Util

List::SomeUtils

Provide the stuff missing in List::Util

List::Util

A selection of general-utility list subroutines

List::UtilsBy

higher-order list utility functions

Logging

Log::Dispatch

Log::Log4perl

Log::Minimal

Module Development

Dist::Zilla

http://dzil.org/

Minilla

CPAN module authoring tool

Network

DOCSIS::ConfigFile

Decodes and encodes DOCSIS config files

NetAddr::MAC

Handle MAC addresses

Net::SSH::Perl

SSH client implemented in Perl.

Net::SSH2

Wrapper for libssh2.

Net::OpenSSH

Run commands remotely using the OpenSSH client.

Net::OpenSSH::Parallel

Run remote commands in parallel using the OpenSSH client.

Net::SSH::Any

Run remote commands using any module or binary client available.

Net::SFTP::Foreign

SFTP client for remote file access.

Object::Remote

Run Perl code on remote machines.

Net::CLI::Interact

Automates interactive programs.

Net::Appliance::Session

Automates interaction with appliances.

ORM

DBIx::Class

Rose::DB

Teng

Package Management

App::cpanminus

Carton

Pinto

Powerful local CPAN repos

Processes and Threads

Parallel::ForkManager

A simple parallel processing fork manager

Parallel::Prefork

A simple prefork server framework

Proclet

Minimalistic supervisor, a Perl port of foreman

Profiling

Devel::KYTProf

Very light profiler for I/Os such as HTTP request-responses and SQL queries.

Devel::NYTProf

Code profiler.

Protocol

Furl

Faster HTTP(S) Client

HTTP::Tiny

Minimal and fast client. Included in the standard packages.

LWP::UserAgent

Popular HTTP(S) Client

Net::Curl

(libcurl)[https://curl.se/libcurl/] integration

Net::DHCP

Send and receive DHCP packets

Net::DNS

Resolve DNS host names

Protocol::DBus

D-Bus in (pure) Perl

Queueing

Gearman

Minion

Pure-Perl job queue

Net::RabbitMQ

Net::Stomp

Qudo

Resque

TheSchwartz

Science/Numerics

BioPerl

Chart::Clicker

Powerful, extensible charting

PDL

PDL (CPAN)

PDL::Graphics::Gnuplot

PDL::IO::*

PDL::LinearAlgebra

PDL::Stats

Physics::*

Stream Manipulation

RxPerl

Perl implementation of Reactive Extensions / rxjs

REST Frameworks

Catalyst::Action::REST

Automated REST Method Dispatching

Dancer2::Plugin::REST

A plugin for writing RESTful apps with Dancer2

Dancer::Plugin::REST

A plugin for writing RESTful apps with Dancer

Raisin

a REST API micro framework for Perl

Squatting

A Camping-inspired Web Microframework for Perl

Template Engines

HTML::Template

Templates for web pages

Template::Alloy

TT2/3, HT, HTE, Tmpl, and Velocity Engine

Template::Toolkit

Very Popular Template Processing System

Text::MicroTemplate

Fast, simple and safe template engine written in pure-Perl and core modules.

Text::MicroTemplate::Extended

Extended Text::MicroTemplate.

Text::Template

Templates with embedded perl

Text::Xslate

Faster template engine with XS. Supports multiple syntaxes.

Tiffany

Generic interface for template engines. It makes it easy to use multiple template engines.

Template::Magic

Magic merger of runtime values with templates.

Testing >Testing Frameworks

Test::Base

A Data Driven Testing Framework

Test::Base::Less

Limited version of Test::Base

Test::BDD::Cucumber

Implementation of the popular Cucumber framework in Perl

Test::Class

Class-based testing. Support "setup" and "teardown".

Test::Deep

Test deep and complex data structures with great flexibility.

Test::Deep::Matcher

Test::Harness

Run Perl standard test scripts with statistics

Test::Kantan

simple, flexible, fun "Testing framework"

Test::More

Testing >Test Double

Test::Exception

Test::Fatal

Simple module for verifying exceptions.

Test::Mock::Guard

Mocking package subroutines.

Test::MockTime

Test::mysqld

Test::TCP

Launch temporary TCP Server

Test::Time

Simple module for faking system time.

Testing >Coverage

Devel::Cover

Devel::Cover::Report::Coveralls

Report to Coveralls

Tools

App::Ack

ack is a tool like grep, optimized for programmers.

App::Nopaste

Post to various pastebins from the CLI

Daiku

Make for Perl.

Data::Printer

Colored pretty-print of Perl data structures and objects.

Reply

Read-eval-print-loop(REPL) command-line tool.

Riji

Static site generator using markdown and git mainly for blogging.

Smart::Comments

Comments that do more than just sit there.

Toolbox::Simple

Simplfy some common tasks in Perl.

Script::Toolbox

Framework for the daily business scripts.

Devel::Kit

Handy toolbox of things to ease development/debugging.

Config::Tiny

Read/Write .ini style files with as little code as possible

Type checking

MooseX::Types

Moose types management tool

Type::Tiny

Tiny, yet comprehensive type library

Video

FFmpeg

Interface to FFmpeg, a video converter written in C

Video::Info

Retrieve video properties such as: height width codec fps

Vlc::Engine

use Vlc media player with Perl

VideoLAN::LibVLC

Perl bindings for libvlc.so

Video::Generator

Perl class for video generation

Web Frameworks

Amon2

Catalyst

Overflowing with features. Very popular.

Dancer

(Official site)

Dancer2

Gantry

Web application framework for mod_perl, cgi, etc.

Kelp

Plack-focused Perl web framework

Kossy

A Web framework with simple interface.

Mojolicious

An all in one framework.

Poet

a modern Perl web framework for Mason developers

Web Frameworks >Middlewares

Gazelle

Preforked Plack Handler for performance freaks

Plack

PSGI server implementation and utilities for Web applications.

Server::Starter

Process manager with the "graceful restart" feature.

Starlet

High-performance PSGI Server

Starman

High-performance preforking PSGI/Plack web server

Twiggy

Event-driven PSGI application server

Web Frameworks-Like

Embperl

Building dynamic Websites with Perl (sort of like Perl crossed with PHP)

Mason

Powerful, high-performance templating for the web and beyond

Web Scraping

Web::Scraper

WWW::Mechanize

WWW::Mechanize::PhantomJS

automate the PhantomJS browser

WWW::Scripter

For scripting web sites that have scripts

WWW::Selenium

Network Security

Net::Pcap

Interface to the pcap LBL packet capture library

Net::Ncap

Perl binding to the ncap network data capture library

Net::Frame

Perl framework for frame crafting

NetPacket

assemble/disassemble network packets at the protocol level

Net::Write

portable interface to open and send raw data to network

Net::Analysis

Perl library for analysing network traffic

Net::Silk

Perl's Interface to the SiLK network flow library

Net::Inspect

Perl library for inspection of data on various network layers

Net::Tshark

Perl interface for Tshark network capture utility

Net::Sharktools

Wireshark's packet inspection capabilities in Perl

File::PCAP

Read, Write and manipulate PCAP file format through Perl

Net::P0f

Perl interface to p0f utility, usefull for finger-printing os

Net::Pcap::Reassemble

Perl IP fragment reassembly for Net::Pcap

Nagios::NRPE

Pure perl Nagios NRPE implementation

Monitoring::Plugin

A family of perl modules to streamline writing Naemon, Nagios, Icinga or Shinken (and compatible) plugins

Net::Connection::Sniffer

practical Perl library for MiTM connections

Net::ARP

Library for crafting ARP packets

SNMPMonitor

Perl extension for writing SNMP Monitors

Net::LibNIDS

Perl interface for the Network Intrusion Detection System library

Parse::Snort

Perl Snort rules parser

Net::Wireless::802_11::WPA::CLI

Perl WPA_CLI interface

IO::Socket::SSL::Intercept

library for intercepting SSL connections through Perl

Metadata Forensics

Image::ExifTool

General metadata parser and viewer framework

Reverse Engineering

Disassembly

Decompiles binary bytecode to readable and recompilable bytecode assembler

Python::Bytecode

Parse Python bytecode

B::Bytecode

Compiles a Perl script into a bytecode format that could be loaded later

Perf::ARM

Use ARM instructions in Perl

Asm::Z80::Table

assemble / disassemble all Z80 CPU assembly instructions with Perl

X86::Disasm

Disassemble Intel x86 instructions with Perl

Disassemble::X86

Another library for disassembe X86 instructions

X86::Udis86

Interface for the C Udis disassembler

Asm::X86

List of instructions and registers of x86-compatible processors, validating and converting instructions and memory references

ELF::Writer

write and read executable ELF files

See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

Curated Python frameworks, libraries and resources.

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

Curated Go frameworks and libraries.

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago