
# Tools
requires "App::cpanminus";
requires "Perl::Build";
requires "Carton";
requires "Reply";
requires "Daiku";
requires "App::watcher";
requires "L";

# Authoring Tools
requires "Minilla";
requires "App::scan_prereqs_cpanfile";
requires "Spellunker";

# Web Application Development
requires "Plack";
requires "Plack::Middleware::ReverseProxy";
requires "Starlet";
requires "HTTP::Parser::XS";
requires "Twiggy";
requires "Server::Starter";
requires "Puncheur";

# Class Builder
requires "Class::Accessor::Lite";
requires "Class::Accessor::Lite::Lazy";
requires "Mouse";
requires "Moo";

# Meta Programming
requires "Class::Method::Modifiers";

# Validation
requires "Data::Validator";

# Utility
requires "Clone";
requires "List::MoreUtils";
requires "List::UtilsBy";
requires "Data::Section::Simple";

# Exception
requires "Exception::Tiny";

# Configure
requires "Config::PL";
requires "Config::Pit";

# Database Accessing
requires "DBI";
requires "DBD::SQLite";
requires "DBD::mysql";
requires "DBIx::Sunny";

# O/R Mapper
requires "Teng";
requires "Teng::Plugin::ResultSet";
requires "Teng::Plugin::SearchJoined";

# Database Related Development
requires "DBIx::Schema::DSL";
requires "SQL::Translator";
requires "GitDDL::Migrator";
requires "SQL::Translator::Producer::Teng";
requires "DBIx::TransactionManager";
requires "DBIx::TransactionManager::EndHook";
requires "DBIx::QueryLog";

# No SQL
requires "Cache::Memcached::Fast";
requires "Redis::Fast";

# Date and Time
requires "Time::Piece::Plus";
requires "Time::Moment";
requires "HTTP::Date";

# File Manipulation
requires "Path::Tiny";
requires "File::pushd";
requires "File::Copy::Recursive";

# Data Format
requires "JSON::XS";
requires "Data::MessagePack";
requires "Text::CSV";
requires "TOML";
requires "YAML";

# Processes and Threads
requires "Parallel::ForkManager";
requires "Proclet";

# Profiling
requires "Devel::NYTProf";
requires "Devel::KYTProf";

# HTTP Access
requires "Furl";
requires "AnyEvent::HTTP";

# Template Engines
requires "Text::Xslate";
requires "Text::MicroTemplate";

# XML and HTML
requires "XML::LibXML";
requires "XML::TreePP";
requires "Web::Query";
requires "WWW::Mechanize";

# Text Tools
requires "Text::Markdown::Discount";
requires "String::Random";
requires "String::IRC";
requires "Number::Format";
requires "String::CamelCase";
requires "Text::Markdown::Slidy";

# Asynchronous
requires "AnyEvent";
requires "Coro";

# Testing
requires "Test::More", "0.98";
requires "Test::SharedFork";
requires "Test::Base::Less";
requires "Test::Deep";
requires "Test::Deep::Matcher";
requires "Test::Deep::Cond";
requires "Test::Pretty";
requires "Test::mysqld";
requires "Test::Mock::Guard";

# Logging
requires "Log::Minimal";
requires "Fluent::Logger";

# Others
requires "POSIX::AtFork";
requires "IO::Prompt::Simple";
requires "Riji";
requires "FindBin::libs";

on test => sub {
    requires "Test::More", 0.98;
};
