このページの内容

Awesome Perl

Perlを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

引数

引数に関するPerlモジュールの用途と対象範囲です。

音声

  • Audio::CD - libcdaudio(CD+CDBDB)とのインターフェース
  • Audio::Wav - Microsoft WAVファイルの読み書き用モジュール
  • Audio::SndFile - 音声ファイルの読み書き用Perlライブラリ
  • Audio::Ao - Ao音声ライブラリ向けPerlのラッパー
  • MIDI::ALSA - perl ALSAライブラリおよびいくつかのインターフェース関数

デジタル信号処理

ベンチマーク

ベンチマークに関するPerlモジュールの用途と対象範囲です。

キャッシュ

キャッシュに関するPerlモジュールの用途と対象範囲です。

クラスビルダー

クラスビルダーに関するPerlモジュールの用途と対象範囲です。

  • Class::Accessor::Lite - シンプルなアクセサ生成器
  • Class::Accessor::Lite::Lazy - ラズリアクセスorを生成する
  • Homer - シンプルなプロトタイプベースのオブジェクトシステム
  • Mo - マイクロオブジェクト。Moは小さい。
  • Moo - メタプログラミングをサポートするクラスビルダー
  • Moose - 唯一の、Moose。
  • Mouse - Moo/Mooseに似た別のクラスビルダー
  • Object::Pad - class Example { has $x; method reader { return $x } }, experimental proving-ground for Cor
  • Object::Tiny - 簡潔で速く小さく、クラスビルダー。

CLI

CLIに関するPerlモジュールの用途と対象範囲です。

  • App::Cmd - コマンドラインアプリを書く際に苦痛を減らす。
  • Getopt::Long - コマンドラインオプションの拡張処理。

クラウド

  • AWS::CloudFront - アマゾンクラウドフロントCDNへの軽量インターフェース
  • AWS::S3 - アマゾンS3(シンプルストレージサービス)への軽量インターフェース
  • Net::Amazon::EC2 - アマゾンエレクトリックコンピュートクラウド(EC2)環境へのインターフェース
  • Net::AWS::SES - アマゾンシンプルメールサービス(SES)クライアントを実装するPerl拡張
  • WebService::DigitalOcean - デジタルオーシンのRESTフルAPI(v2)にアクセス
  • WebService::Dropbox - ドロップボックスAPIへのインターフェース

暗号

商用Webサービス

  • Net::Xero - Xero会計へのインターフェース
  • PagerDuty::Agent - PerlのPagerDutyクライアント
  • WebService::Spotify - スポトニクスWebAPIへのシンプルインターフェース
  • WebService::Xero - Xero アカウントングパッケージの公開・プライベートアプリケーションAPIにアクセス
  • WWW::Shopify - 特定のShopifyストアへのアクセスを表すオブジェクト
  • WWW::Spotify - Spotify Web APIのラッパー

コンテナー

コンテナーに関するPerlモジュールの用途と対象範囲です。

データ形式

データ形式に関するPerlモジュールの用途と対象範囲です。

データベース

データベースに関するPerlモジュールの用途と対象範囲です。

データベースドライバー

データベースドライバーに関するPerlモジュールの用途と対象範囲です。

リレーショナルデータベース

  • DBD::CSV
  • DBD::Firebird
  • DBD::MariaDB - Perl5データベースインターフェース(DBI)用のMariaDBおよびMySQLドライバー
  • DBD::mysql
  • DBD::ODBC - ODBCドライバーのいずれも。MS-SQL(プレースホルダー付き)
  • DBD::Oracle - DBIモジュール用のオラクルデータベースドライバー
  • DBD::Pg - DBI用のPostgreSQLドライ連
  • DBD::SQLite
  • DBD::Sybase - SybaseおよびMS-SQL。ただしMS-SQLではプレースホルダーは使用しない

NoSQLデータベース

日付と時刻

日付と時刻に関するPerlモジュールの用途と対象範囲です。

デバイス

デバイスに関するPerlモジュールの用途と対象範囲です。

  • Device::SerialPort - シリアル通信用の汎用シリアルポートライブラリ
  • Device::Modem - シリアルポート経由で接続されたモデムデバイスと話す
  • Device::Onkyo - LANまたはシリアル経由でオンキョー/インテグレートAV機器を制御
  • Chipcard::PCSC::Card - PerlとPCSCを使用したスマートカードの制御
  • Device::XBee::API - 純PerlコードでXBeeデバイスを制御
  • Device::Firmata - ArduinoのようなFirmataデバイスを制御するモジュール

DevOpsツール

DevOpsツールに関するPerlモジュールの用途と対象範囲です。

  • Rex - リモート実行

メール

メールに関するPerlモジュールの用途と対象範囲です。

イベントループ

イベントループに関するPerlモジュールの用途と対象範囲です。

  • AE - よりシンプルで速い、新しいAnyEvent API
  • AnyEvent - イベントループプログラミングにおけるDBI
  • EV - libevを使用しており、非常に速く人気がある。libevが存在すればAnyEventのデフォルトとなる
  • Event - 動作は良好だが、古いため
  • IO::Async - 非同期イベント駆動プログラミング
  • POE - 複数のイベントループに共通するインターフェース
  • Promise::XS - PerlにおけるPromises

例外処理

例外処理に関するPerlモジュールの用途と対象範囲です。

  • autodie - 成功またはエラーで終了する関数を、レキシカルスコープで置き換える
  • Exception::Class - Perlで実際の例外クラスを宣言できるモジュール
  • Syntax::Keyword::Try - Perlにおけるtry/catch/finally構文
  • Throwable - 例外が投げられることができるクラスのためのロール
  • Try::Tiny - $@の適切な保持を含む最小のtry/catch
  • TryCatch - ソースフィルタなしでPerlにおける第一クラスのtry/catchセマンティクス

DOM操作

  • HTML5::DOM - 高速HTML5 DOMライブラリ(CSSセレクタベース:Modest/MyHTML)

ファイル操作

  • File::Util - 簡単で、柔軟かつ移植性の高いファイル処理
  • Path::Tiny - シンプルなオブジェクト指向ファイル操作

フォームフレームワーク

フォームフレームワークに関するPerlモジュールの用途と対象範囲です。

  • Catalyst::Controller::HTML::FormFu - CatalystでHTML::FormFuを使用する
  • CGI::FormBuilder - 状態を保持するフォームを簡単に生成・処理できる
  • Form::Sensible - フォームベースのユーザーインターフェースを扱うための合理的な方法
  • Form::Tiny - Type::Tinyの型制約を再利用するフォーム
  • Form::Toolkit - データ中心のフォームを構築するためのツールキット
  • HTML::FormFu - HTMLフォームの作成、レンダリング、検証フレームワーク
  • HTML::FormFu::ExtJS - HTML::FormFuの設定ファイルからExtJSフォームを生成
  • HTML::FormHandler - Mooseを使用したHTMLフォーム
  • Mojolicious::Plugin::FormFields - 検証とフィルタリングを備えた軽量かつ柔軟なフォームビルダー
  • WWW::Form - HTMLフォームの入力検証と表示をシンプルかつ拡張可能に実現するモジュール

画像

画像に関するPerlモジュールの用途と対象範囲です。

  • Image::Magick - ImageMagickの画像合成ライブラリへのオブジェクト指向インターフェース
  • Imager
  • GD - Gdグラフィックスライブラリへのインターフンス
  • Image::Info - 画像情報の取得
  • Image::PNG::Libpng - libpngへのPerlインターフェース
  • Graphics::TIFF - libtiffへのPerlラッパー
  • Image::BMP - Perlのビットマップ画像解析・閲覧ツール

リスト操作

リスト操作に関するPerlモジュールの用途と対象範囲です。

  • Array::Unique - 一意の値のみを許容するティーバインダー配列
  • List::AllUtils - List::Util、List::SomeUtils、List::UtilsByを1つのパッケージにまとめる
  • List::Compare - 2つ以上のリストの要素を比較
  • List::Gen - リストの生成に必要な関数を提供
  • List::MoreUtils - List::Util に欠けている機能を提供
  • List::SomeUtils - List::Util に欠けている機能を提供
  • List::Util - 一般用途のリストサブローチンの選定
  • List::UtilsBy - 高階のリストユーティリティ関数

ログ

ログに関するPerlモジュールの用途と対象範囲です。

モジュール開発

モジュール開発に関するPerlモジュールの用途と対象範囲です。

ネットワーク

ネットワークに関するPerlモジュールの用途と対象範囲です。

ネットワークに関するPerlモジュールの用途と対象範囲です。

ORM

ORMに関するPerlモジュールの用途と対象範囲です。

パッケージ管理

パッケージ管理に関するPerlモジュールの用途と対象範囲です。

プロセスとスレッド

プロセスとスレッドに関するPerlモジュールの用途と対象範囲です。

プロファイリング

プロファイリングに関するPerlモジュールの用途と対象範囲です。

  • Devel::KYTProf - HTTPリクエスト・レスポンスやSQLクエリなどのI/Oに最適な非常に軽量のプロファイラー
  • Devel::NYTProf - コードプロファイラー

プロトコル

プロトコルに関するPerlモジュールの用途と対象範囲です。

キュー

キューに関するPerlモジュールの用途と対象範囲です。

科学技術計算

科学技術計算に関するPerlモジュールの用途と対象範囲です。

ストリーム操作

ストリーム操作に関するPerlモジュールの用途と対象範囲です。

RESTフレームワーク

RESTフレームワークに関するPerlモジュールの用途と対象範囲です。

テンプレートエンジン

テンプレートエンジンに関するPerlモジュールの用途と対象範囲です。

  • HTML::Template - ウェブページ用のテンプレート
  • Template::Alloy - TT2/3、HT、HTE、Tmpl、Velocityエンジン
  • Template::Toolkit - 非常に人気のあるテンプレート処理システム
  • Text::MicroTemplate - 純Perlとコアモジュールで書かれた高速でシンプルかつ安全なテンプレートエンジン
  • Text::MicroTemplate::Extended - 拡張されたText::MicroTemplate
  • Text::Template - Perlを埋め込んだテンプレート
  • Text::Xslate - XSで書かれた高速テンプレートエンジン。複数の構文をサポート。
  • Tiffany - テンプレートエンジンの汎用インターフェース。複数のテンプレートエンジンを簡単に使用できるようにする。
  • Template::Magic - 実行時値とテンプレートのマジックマージ。

テスト

テストに関するPerlモジュールの用途と対象範囲です。

テストフレームワーク

テストダブル

カバレッジ

ツール

ツールに関するPerlモジュールの用途と対象範囲です。

  • App::Ack - ackはgrepに似たツールで、プログラマ向けに最適化されている。
  • App::Nopaste - CLIからさまざまなpastebinに投稿。
  • Daiku - Perl用のMake。
  • Data::Printer - Perlデータ構造とオブジェクトの彩色されたきれいな出力。
  • Reply - 読み込み・評価・表示ループ(REPL)のコマンドラインツール。
  • Riji - マーカーとGitを主に使用した静的サイトジェネレーター(ブログ用)。
  • Smart::Comments - コメントがただそこに座っているだけではなく、より多くのことをできる。

ツールに関するPerlモジュールの用途と対象範囲です。

  • Toolbox::Simple - Perlにおけるいくつかの一般的なタスクを簡略化。
  • Script::Toolbox - 日常業務用スクリプトのためのフレームワーク。
  • Devel::Kit- Handy toolbox of things to ease development/debugging.

ツールに関するPerlモジュールの用途と対象範囲です。

  • Config::Tiny - 可能な限り少ないコードで.ini形式のファイルを読み書き。

型検査

  • MooseX::Types - Mooseの型管理ツール。
  • Type::Tiny - 非常に小さく、しかし包括的な型ライブラリ。

動画

  • FFmpeg - FFmpegへのインターフェース(C言語で書かれた動画変換ツール)
  • Video::Info - 動画の高さ、幅、コーデック、フレームレートなどのプロパティを取得
  • Vlc::Engine - PerlでVLCメディアプレイヤーを使用
  • VideoLAN::LibVLC - libvlc.soへのPerlバインディング
  • Video::Generator - 動画生成用のPerlクラス

Webフレームワーク

Webフレームワークに関するPerlモジュールの用途と対象範囲です。

  • Amon2
  • Catalyst - 機能が豊富。非常に人気がある。
  • Dancer (Official site)
  • Dancer2
  • Gantry - mod_perl、cgiなどへのウェブアプリケーションフレームワーク
  • Kelp - Plackを中心としたPerlウェブフレームワーク
  • Kossy - シンプルなインターフェースを持つウェブフレームワーク。
  • Mojolicious - すべてを一括で提供するフレームワーク。
  • Poet - Mason開発者向けの現代的なPerlウェブフレームワーク

ミドルウェア

ミドルウェアに関するPerlモジュールの用途と対象範囲です。

  • Gazelle - パフォーマンス志向者向けのプリフォールドPlackハンドラー
  • Plack - ウェブアプリケーション向けのPSGIサーバー実装とユーティリティ。
  • Server::Starter - 「グレースフルリスタート」機能を備えたプロセスマネージャ。
  • Starlet - 高パフォーマンスPSGIサーバー
  • Starman - 高パフォーマンスプリフォールドPSGI/Plackウェブサーバー
  • Twiggy - イベント駆動型PSGIアプリケーションサーバー

Webフレームワーク類似

Webフレームワーク類似に関するPerlモジュールの用途と対象範囲です。

  • Embperl - Perlで動的ウェブサイトを構築(PHPとPerlが融合したようなもの)
  • Mason - ウェブだけでなく、幅広い分野に活用可能な強力で高パフォーマンスなテンプレートエンジン

Webスクレイピング

Webスクレイピングに関するPerlモジュールの用途と対象範囲です。

ネットワークセキュリティ

ネットワークセキュリティに関するPerlモジュールの用途と対象範囲です。

  • Net::Pcap - pcap LBLパケットキャプチャライブラリへのインターフェース
  • Net::Ncap - ncapネットワークデータキャプチャライブラリへのPerlバインディング
  • Net::Frame - フレーム作成用のPerlフレームワーク
  • NetPacket - プロトコルレベルでのネットワークパケットの組み立て・分解
  • Net::Write - ネットワークに原始データをオープンし送信するためのポータブルインターフェース
  • Net::Analysis - ネットワークトラフィックの解析用Perlライブラリ
  • Net::Silk - PerlによるSiLKネットワークフローライブラリへのインターフェース
  • Net::Inspect - 複数のネットワークレイヤー上のデータの検査用Perlライブラドリ
  • Net::Tshark - TsharkネットワークキャプチャユーティリティへのPerlインターフェース
  • Net::Sharktools - PerlでWiresharkのパケット検査機能を提供
  • File::PCAP - Perlを用いたPCAPファイルフォーマットの読み書きおよび操作
  • Net::P0f - p0fユーティリティへのPerlインターフェース(OSのフィンガープリントに有用)
  • Net::Pcap::Reassemble - Net::PcapにおけるPerlIPフラグメント再構成
  • Nagios::NRPE - 純PerlによるNagios NRPE実装
  • Monitoring::Plugin - Naemon、Nagios、IcingaまたはShinken(および互換)プラグインの開発を簡素化するPerlモジュールのファミリー
  • Net::Connection::Sniffer - MITM接続用の実用的なPerlライブラリ
  • Net::ARP - ARPパケット作成用ライブラリ
  • SNMPMonitor - SNMPモニタの作成用Perl拡張
  • Net::LibNIDS - ネットワークインシデント検知システムライブラリへのPerlインターフェース
  • Parse::Snort - Perl Snortルールパーサー
  • Net::Wireless::802_11::WPA::CLI - Perl WPA_CLIインターフェース
  • IO::Socket::SSL::Intercept - Perlを用いたSSL接続のインターセプション用ライブラリ

メタデータフォレンジック

メタデータフォレンジックに関するPerlモジュールの用途と対象範囲です。

  • Image::ExifTool - 一般のメタデータ解析および閲覧フレームワーク

リバースエンジニアリング

リバースエンジニアリングに関するPerlモジュールの用途と対象範囲です。

  • Disassembly - バイナリバイトコードを読みやすいかつ再コンパイル可能なバイトコードアセンブラーに分解
  • Python::Bytecode - Pythonバイトコードのパース
  • B::Bytecode - Perlスクリプトを後のロードに使えるバイトコード形式にコンパイル
  • Perf::ARM - PerlでARM命令を使用
  • Asm::Z80::Table - PerlでZ80CPUアセンブリ命令をすべてアセンブル・ディアセンブル
  • X86::Disasm - PerlでIntel x86命令をディアセンブル
  • Disassemble::X86 - X86命令用の別のライブラリ
  • X86::Udis86 - C Udisディアセンブル用インターフェース
  • Asm::X86 - x8Tが互換性を持つプロセッサの命令とレジスタ一覧、命令およびメモリ参照の検証と変換
  • ELF::Writer - 実行可能ELFファイルの書き出しと読み込み

ほかのAwesomeリスト

ほかの優れたAwesomeリスト:

コントリビューション方法

コントリビューション前にCONTRIBUTING.md