Giter Site home page Giter Site logo

awesome-perl's Introduction

Awesome Perl Awesome

A curated list of awesome Perl resources, including frameworks, libraries and software. Inspired by awesome-go.

Another module list

We also recommend these lists.

Contents

Args

Libraries for argument manifestation and validation.

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

DSP

Benchmarks

Libraries for benchmarking

Caches

Libraries to talk to Cache Softwares

Class Builder

Libraries to support writing classes and meta programming

  • 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

Libraries for developing CLI applications

  • App::Cmd - Write command line apps with less suffering.
  • Getopt::Long - Extended processing of command line options.

Cloud

Cryptography

Commercial WebServices

Container

Libraries for Singleton Pattern implementation.

Data Format

Libraries for serializing, formatting and parsing

Database

Libraries for dealing with relational databases

Database Drivers

Libraries for using specific database products

Relational Databases

NoSQL Databases

Date & Time

Libraries for working with dates and times

Devices

Libraries to talk to physical devices

DevOps Tools

Libraries that help when you want to deploy software across networks on several hosts/are working across computer networks

  • Rex - Remote Execution

Email

Libraries that implement email creation and sending

Event Loops

Libraries for various event loops. Asynchronous programming if you like

  • 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

Libraries that assist with and/or provide alternatives to eval{ die() }

  • 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

Libraries that take the boredom & repetition out of (web and UI) forms

Images

Libraries for manipulating images

List Manipulation

Libraries for manipulation lists (arrays)

Logging

Libraries for generating and working with log files

Module Development

Libraries that simplify and improve Perl module development

Network

Libraries that help when you are dealing with computer networks

Libraries that help when you are working across computer networks

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques

Package Management

Libraries for package and dependency management

Processes and Threads

Libraries for managing processes and threads

Profiling

Libraries for examining run-time activity of your program

Protocol

Protocol clients and libraries

Queueing

Message Queue, Job Queue System..

Science/Numerics

Hand-picked modules for research, science, numerics and hyper-computing

Stream Manipulation

Libraries for manipulating event streams

REST Frameworks

Libraries for developing REST applications

Template Engines

Libraries and tools for templating

Testing

Libraries for testing codebases and generating test data.

Testing Frameworks

Test Double

Coverage

Tools

Some useful 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.

Libraries for developping command line applications

Libraries for handling configuration files

  • Config::Tiny - Read/Write .ini style files with as little code as possible

Type checking

Video

Web Frameworks

Libraries for developing Web applications

Middlewares

Libraries for creating HTTP 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

Somewhere between templates and full on frameworks

  • 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

Libraries for extracting some information from websites

Network Security

Some great libraries for starting the world of Network security with Perl

Metadata Forensics

General Metadata files parser, usefull during forensics investigations

Reverse Engineering

Libraries used for disassembly assembly operations, ELF files and bytecode

  • 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

Other Awesome Lists

Other amazingly awesome lists can be found in:

How to contribute?

Please read CONTRIBUTING.md

awesome-perl's People

Contributors

akarelas avatar akarelas-pt avatar bbrtj avatar briandfoy avatar craigtreptow avatar debug-ito avatar decaduto avatar djzort avatar fgasper avatar hirobanex avatar isync avatar jmrenouard avatar jorol avatar jwehmschulte avatar mackee avatar matthewpersico avatar moznion avatar oalders avatar papix avatar rwhitworth avatar songmu avatar sshaw avatar stanimirovv avatar thibaultduponchelle avatar tm604 avatar tsucchi avatar uzulla avatar wildtype avatar woodruffw avatar yamaguchisota avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-perl's Issues

CUI? CLI?

Just a clarification: In my 25 years of programming experience, I've never seen the acronym "CUI". I'm assuming, based on Getopt::Long, that that section is for libraries that aid development of command-line run programs. If so, you might consider using the common acronym "CLI" (command-line interface) to eliminate confusion.

Add more descriptions

Most items already have a description about why they're awesome, but there are some that don't have one yet. The Science/Numerics items for example.

Links are useless without a description so let's add one 💃

This is weird...

Why don't Dancer/Dancer 2, Catalyst, and Web::Simple appear, but Kossy does?

I would think you would also add additional ones that get a lot of traction, like those I mentioned.

Just weird, really.

Validate pull requests with Travis

Hello, I wrote a tool that can validate README links (valid URLs, not duplicate). It can be run when someone submits a pull request.

It is currently being used by

Examples

If you are interested, connect this repo to https://travis-ci.org/ and add a .travis.yml file to the project.

See https://github.com/dkhamsing/awesome_bot for options, more information
Feel free to leave a comment 😄

Make "App" section...

App::Ack is awesome module, but this lists does not have the category that fit App::Ack. So, should we make App? Or do you have any other ideas?

Repair funny english

Sorry, I am not native english speaker.
If you found funny english, throw pull request or issues.

New section for ticketing system clients

I would like to add a new section for ticket system client libraries, for example RT::Client::REST and BZ::Client (which I am involved with). Others include Net::Zendesk and WebService::Zendesk, ServiceNow::SOAP and ServiceNow::Simple. Without looking, Github bugs, Jira, etc also

Args section...

How about adding Data::Validator and Params::Validate to Args section ?

Serialize or Text Processing?

I think JSON/XML/YAML is data serialize but not text processing. And markdown is something more like template tech?

use Resources::Learning;

This list features a large number of Perl's pet projects, libraries, frameworks, etc.

But I find it lacking in terms of learning resources.

What do you think about including tutorials and listing the best / curated learning materials?

Cheers!
よろしくお願いします!

Which categories are subject to the higher quality standard? And why?

Quality Standardを2段階に設定されてますが、高いレベルのQuality Standardが適用されるのは具体的に言ってどのカテゴリーなのでしょうか? Web Application Frameworkを例に挙げられてますが、他にもあるのでしょうか?

また、Web Application Frameworkなどにわざわざ高いレベルのQuality Standardを適用しているのは何故でしょうか? そのあたりの説明がないと無用な混乱を生みそうに思います。

細かくてすみませんが、よろしくお願いします。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.