Awesome Perl
Perlを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
- Awesome Perl
- 引数
- 音声
- ベンチマーク
- キャッシュ
- クラスビルダー
- CLI
- クラウド
- 暗号
- 商用Webサービス
- コンテナー
- データ形式
- データベース
- データベースドライバー
- 日付と時刻
- デバイス
- DevOps
- メール
- イベントループ
- 例外処理
- DOM操作
- ファイル操作
- フォームフレームワーク
- 画像
- リスト操作
- ログ
- モジュール開発
- ネットワーク
- ORM
- パッケージ管理
- プロセスとスレッド
- プロファイリング
- プロトコル
- キュー
- RESTフレームワーク
- 科学技術計算
- ストリーム操作
- テンプレートエンジン
- テスト
- ツール
- 型検査
- 動画
- Webフレームワーク
- Webフレームワーク類似
- Webスクレイピング
- ネットワークセキュリティ
- デジタルフォレンジック
- リバースエンジニアリング
引数
引数に関するPerlモジュールの用途と対象範囲です。
- Data::Validator - 型制約システムに基づくルールベースのバリデーション
- Params::Util - シンプルでコンパクトかつ正確なパラメータチェック関数
- Params::ValidationCompiler - メソッド/関数のパラメータをバリデーション
- Smart::Args
音声
- Audio::CD - libcdaudio(CD+CDBDB)とのインターフェース
- Audio::Wav - Microsoft WAVファイルの読み書き用モジュール
- Audio::SndFile - 音声ファイルの読み書き用Perlライブラリ
- Audio::Ao - Ao音声ライブラリ向けPerlのラッパー
- MIDI::ALSA - perl ALSAライブラリおよびいくつかのインターフェース関数
デジタル信号処理
- Audio::Analyzer - FFTとperlを用いた音声の解調
- Audio::Analyzer::ToneDetect - 音声ファイルまたはストリーム内のトーンの周波数を検出
ベンチマーク
ベンチマークに関するPerlモジュールの用途と対象範囲です。
- Benchmark
- Dumbbench
- Parallel::Benchmark - マルチプロセスにおけるベンチマーク
キャッシュ
キャッシュに関するPerlモジュールの用途と対象範囲です。
- CHI - 一元化されたキャッシュ処理インターフェース(キャッシュ用DBIに類似)
- CHI::Driver::DBI - CHI向けDBIドライバー
- CHI::Driver::DBIC - CHI向けDBIx::Classドライバー
- CHI::Driver::Memcached - CHI向けMemcachedドライ連携
- CHI::Driver::MongoDB - CHI向けMongoDBドライバー
- CHI::Driver::Redis - CHI向けRedisドライバー
- Catalyst::Plugin::Session::Store::CHI - CHIモジュールを用いてセッションデータのストレージバックエンドを処理
- CGI::Application::Plugin::CHI - CHIキャッシュインターフェース向けCGI-Appプラグイン
- Mojolicious::Plugin::CHI - CHIキャッシュとの相互作用
クラスビルダー
クラスビルダーに関する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へのインターフェース
暗号
- Bitcoin::Crypto - Perlでビットコイン暗号。
- CryptX - 暗号ツールキット
商用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モジュールの用途と対象範囲です。
- BSON - バイナリJSON形式
- CBOR::Free - Support for CBOR, IETF’s “binary JSON”
- Data::Dumper::Simple - Data::Dumperおよびeval()に同等の機能を簡潔に実行し高速化
- Data::MessagePack
- JSON::PP
- JSON::XS
- Sereal
- Storable
- Text::CSV
- Text::CSV_XS
- Text::Markdown
- TOML
- XML::LibXML
- XML::Compile::Schema - スキーマ要素および型を解釈:XMLメッセージにプロセッサを作成
- XML::Compile::SOAP - SOAP 1.1プロトコルを実装(クライアント側)
- XML::Compile::WSDL - WSDLバージョン1.1の通信仕様ファイルを使用したSOAPの利用
- YAML
データベース
データベースに関するPerlモジュールの用途と対象範囲です。
- DBI
- DBIx::Connector - 高速かつ安全なDBI接続およびトランザクション管理
- DBIx::Handler - フォーク安全なDBIハンドラー
- DBIx::Inspector
- DBIx::QueryLog
- DBIx::Sunny - 有用なDBIラッパー
- DBIx::TransactionManager
データベースドライバー
データベースドライバーに関する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データベース
- Cache::Memcached::Fast
- Mango - 純Perl非ブロッキングI/O MongoDBドライバー
- Redis
- Redis::Fast - hiredisドライバーに対するPerlラッパー
- Search::Elasticsearch - 公式Elasticsearchクライアントライブラリ
- UnQLite
日付と時刻
日付と時刻に関する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モジュールの用途と対象範囲です。
- Dist::Zilla - http://dzil.org/
- Minilla - CPANモジュール作成ツール
ネットワーク
ネットワークに関するPerlモジュールの用途と対象範囲です。
- DOCSIS::ConfigFile - DOCSIS設定ファイルのデコードとエンコード
- NetAddr::MAC - MACアドレスの処理
ネットワークに関するPerlモジュールの用途と対象範囲です。
- Net::SSH::Perl - Perlで実装されたSSHクライアント
- Net::SSH2 - Wrapper for libssh2.
- Net::OpenSSH - Run commands remotely using the OpenSSH client.
- Net::OpenSSH::Parallel - OpenSSHクライアントを使って並列にリモートコマンドを実行
- Net::SSH::Any - 任意のモジュールまたはバイナリクライアントを使ってリモートコマンドを実行
- Net::SFTP::Foreign - リモートファイルアクセス用のSFTPクライアント
- Object::Remote - リモートマシン上でPerlコードを実行
- Net::CLI::Interact - インタラクティブなプログラムの自動化
- Net::Appliance::Session - アパレットとのインタラクションの自動化
ORM
ORMに関するPerlモジュールの用途と対象範囲です。
パッケージ管理
パッケージ管理に関するPerlモジュールの用途と対象範囲です。
- App::cpanminus
- Carton
- Pinto - 強力なローカルCPANリポジトリ
プロセスとスレッド
プロセスとスレッドに関するPerlモジュールの用途と対象範囲です。
- Parallel::ForkManager - シンプルな並列処理用のforkマネージャ
- Parallel::Prefork - シンプルなpreforkサーバーフレームワーク
- Proclet - Minimalistic supervisor, a Perl port of foreman
プロファイリング
プロファイリングに関するPerlモジュールの用途と対象範囲です。
- Devel::KYTProf - HTTPリクエスト・レスポンスやSQLクエリなどのI/Oに最適な非常に軽量のプロファイラー
- Devel::NYTProf - コードプロファイラー
プロトコル
プロトコルに関するPerlモジュールの用途と対象範囲です。
- Furl - 高速HTTP(S)クライアンツ
- HTTP::Tiny - 標準パッケージに含まれる最小で高速なクライアント
- LWP::UserAgent - 人気のHTTP(S)クライアント
- Net::Curl - (libcurl)[https://curl.se/libcurl/] integration
- Net::DHCP - DHCPパケットの送受信
- Net::DNS - DNSホスト名の解決
- Protocol::DBus - D-Busを(純Perlで)実装
キュー
キューに関するPerlモジュールの用途と対象範囲です。
- Gearman
- Minion - 純Perlベースのジョブキュー
- Net::RabbitMQ
- Net::Stomp
- Qudo
- Resque
- TheSchwartz
科学技術計算
科学技術計算に関するPerlモジュールの用途と対象範囲です。
- BioPerl
- Chart::Clicker - 強力で拡張可能なチャート表示
- PDL
- PDL (CPAN)
- PDL::Graphics::Gnuplot
- PDL::IO::*
- PDL::LinearAlgebra
- PDL::Stats
- Physics::*
ストリーム操作
ストリーム操作に関するPerlモジュールの用途と対象範囲です。
- RxPerl - Perl implementation of Reactive Extensions / rxjs
RESTフレームワーク
RESTフレームワークに関するPerlモジュールの用途と対象範囲です。
- Catalyst::Action::REST - 自動RESTメソッドディスパッチ
- Dancer2::Plugin::REST - Dancer2でRESTフルアプリを書くためのプラグイン
- Dancer::Plugin::REST - DancerでRESTフルアプリを書くためのプラグイン
- Raisin - Perl用のREST APIマイクロフレームワーク
- Squatting - Perl用のCamping風ウェブマイクロフレームワーク
テンプレートエンジン
テンプレートエンジンに関する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モジュールの用途と対象範囲です。
テストフレームワーク
- Test::Base - データ駆動型テストフレームワーク
- Test::Base::Less - Test::Baseの限定版
- Test::BDD::Cucumber - Perlで実装された人気のあるCucumberフレームワーク
- Test::Class - クラスベースのテスト。“setup” と “teardown” をサポート。
- Test::Deep - 複雑なデータ構造を柔軟にテスト。
- Test::Deep::Matcher
- Test::Harness - 統計情報を含むPerl標準テストスクリプトの実行
- Test::Kantan - シンプルで柔軟で楽しい”テストフレームワーク”
- Test::More
テストダブル
- Test::Exception
- Test::Fatal - 例外を検証するためのシンプルなモジュール。
- Test::Mock::Guard - パッケージサブローチンのモック化。
- Test::MockTime
- Test::mysqld
- Test::TCP - 一時的なTCPサーバーの起動
- Test::Time - システム時刻を偽るためのシンプルなモジュール。
カバレッジ
- Devel::Cover
- Devel::Cover::Report::Coveralls Report to Coveralls
ツール
ツールに関する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モジュールの用途と対象範囲です。
Webスクレイピング
Webスクレイピングに関するPerlモジュールの用途と対象範囲です。
- Web::Scraper
- WWW::Mechanize
- WWW::Mechanize::PhantomJS - PhantomJSブラウザの自動化
- WWW::Scripter - スクリプトを用いたウェブサイトの開発用
- WWW::Selenium
ネットワークセキュリティ
ネットワークセキュリティに関する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リスト:
- bayandin/awesome-awesomeness
- emijrp/awesome-awesome
- fleveque/awesome-awesomes
- sindresorhus/awesome
- t3chnoboy/awesome-awesome-awesome
コントリビューション方法
コントリビューション前にCONTRIBUTING.md