Skip to content

Instantly share code, notes, and snippets.

@ltriant
Created April 23, 2019 23:12
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ltriant/0f3652acfc5ff0916a02060bd3d6425f to your computer and use it in GitHub Desktop.
Save ltriant/0f3652acfc5ff0916a02060bd3d6425f to your computer and use it in GitHub Desktop.
MD5 as a Service

MD5-as-a-Service

An example web service that utilises some caching. Two instances of the service and a Redis instance can be brought up with Docker Compose.

$ docker-compose up -d
...
$ curl -X POST http://localhost:5000/foo
{"digest":"acbd18db4cc2f85cedef654fccc4a4d8","from_cache":0,"word":"foo"}
$ curl -X POST http://localhost:5001/foo
{"digest":"acbd18db4cc2f85cedef654fccc4a4d8","from_cache":1,"word":"foo"}
#!/usr/bin/env perl
use warnings;
use strict;
use CHI;
use Digest::MD5 qw(md5_hex);
use Mojolicious::Lite;
my $CACHE = CHI->new(
driver => 'Redis',
namespace => 'md5_as_a_service',
server => "cache_server:6379",
debug => 0,
l1_cache => {
driver => 'FastMmap',
share_file => "/tmp/md5-perl-caching",
cache_size => '10m',
},
);
post '/:word' => sub {
my ($c) = @_;
my $word = $c->param('word');
if (my $digest = $CACHE->get($word)) {
$c->render(json => {
from_cache => 1,
word => $word,
digest => $digest,
} );
}
else {
my $digest = md5_hex($word);
$CACHE->set($word, $digest);
$c->render(json => {
from_cache => 0,
word => $word,
digest => $digest,
} );
}
};
app->start;
requires 'Starman';
requires 'Cache::FastMmap';
requires 'CHI';
requires 'CHI::Driver::FastMmap';
requires 'CHI::Driver::Redis';
requires 'Digest::MD5';
requires 'Mojolicious::Lite';
# carton snapshot format: version 1.0
DISTRIBUTIONS
Apache-LogFormat-Compiler-0.35
pathname: K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.35.tar.gz
provides:
Apache::LogFormat::Compiler 0.35
requirements:
Module::Build::Tiny 0.035
POSIX 0
POSIX::strftime::Compiler 0.30
Time::Local 0
perl 5.008001
B-Hooks-EndOfScope-0.24
pathname: E/ET/ETHER/B-Hooks-EndOfScope-0.24.tar.gz
provides:
B::Hooks::EndOfScope 0.24
B::Hooks::EndOfScope::PP 0.24
B::Hooks::EndOfScope::XS 0.24
requirements:
ExtUtils::MakeMaker 0
Hash::Util::FieldHash 0
Module::Implementation 0.05
Scalar::Util 0
Sub::Exporter::Progressive 0.001006
Text::ParseWords 0
Tie::Hash 0
Variable::Magic 0.48
perl 5.006001
strict 0
warnings 0
CHI-0.60
pathname: J/JS/JSWARTZ/CHI-0.60.tar.gz
provides:
CHI 0.60
CHI::CacheObject 0.60
CHI::Driver 0.60
CHI::Driver::Base::CacheContainer 0.60
CHI::Driver::CacheCache 0.60
CHI::Driver::FastMmap 0.60
CHI::Driver::File 0.60
CHI::Driver::Memory 0.60
CHI::Driver::Metacache 0.60
CHI::Driver::Null 0.60
CHI::Driver::RawMemory 0.60
CHI::Driver::Role::HasSubcaches 0.60
CHI::Driver::Role::IsSizeAware 0.60
CHI::Driver::Role::IsSubcache 0.60
CHI::Stats 0.60
requirements:
Carp::Assert 0.20
Class::Load 0
Data::UUID 0
Digest::JHash 0
Digest::MD5 0
ExtUtils::MakeMaker 0
File::Spec 0.80
Hash::MoreUtils 0
JSON::MaybeXS 1.003003
List::MoreUtils 0.13
Log::Any 0.08
Moo 1.003
MooX::Types::MooseLike 0.23
MooX::Types::MooseLike::Base 0
MooX::Types::MooseLike::Numeric 0
Storable 0
String::RewritePrefix 0
Task::Weaken 0
Time::Duration 1.06
Time::Duration::Parse 0.03
Time::HiRes 1.30
Try::Tiny 0.05
CHI-Driver-Redis-0.10
pathname: I/IB/IBURRELL/CHI-Driver-Redis-0.10.tar.gz
provides:
CHI::Driver::Redis 0.10
CHI::Driver::Redis::t::CHIDriverTests undef
requirements:
CHI 0.36
ExtUtils::MakeMaker 6.59
Moo 0
Redis 1.901
Test::Class 0
Test::Mock::Redis 0
Test::More 0
URI 0
perl 5.006
CPAN-Meta-2.150010
pathname: D/DA/DAGOLDEN/CPAN-Meta-2.150010.tar.gz
provides:
CPAN::Meta 2.150010
CPAN::Meta::Converter 2.150010
CPAN::Meta::Feature 2.150010
CPAN::Meta::History 2.150010
CPAN::Meta::Merge 2.150010
CPAN::Meta::Prereqs 2.150010
CPAN::Meta::Spec 2.150010
CPAN::Meta::Validator 2.150010
Parse::CPAN::Meta 2.150010
requirements:
CPAN::Meta::Requirements 2.121
CPAN::Meta::YAML 0.011
Carp 0
Encode 0
Exporter 0
ExtUtils::MakeMaker 6.17
File::Spec 0.80
JSON::PP 2.27300
Scalar::Util 0
perl 5.008001
strict 0
version 0.88
warnings 0
Cache-FastMmap-1.47
pathname: R/RO/ROBM/Cache-FastMmap-1.47.tar.gz
provides:
Cache::FastMmap 1.47
Cache::FastMmap::OnLeave 1.47
requirements:
ExtUtils::MakeMaker 0
Storable 0
Carp-Assert-0.21
pathname: N/NE/NEILB/Carp-Assert-0.21.tar.gz
provides:
Carp::Assert 0.21
requirements:
Carp 0
Exporter 0
ExtUtils::MakeMaker 0
perl 5.006
strict 0
vars 0
warnings 0
Class-Inspector-1.32
pathname: P/PL/PLICEASE/Class-Inspector-1.32.tar.gz
provides:
Class::Inspector 1.32
Class::Inspector::Functions 1.32
requirements:
ExtUtils::MakeMaker 0
File::Spec 0.80
perl 5.006
Class-Load-0.25
pathname: E/ET/ETHER/Class-Load-0.25.tar.gz
provides:
Class::Load 0.25
Class::Load::PP 0.25
requirements:
Carp 0
Data::OptList 0.110
Exporter 0
ExtUtils::MakeMaker 0
Module::Implementation 0.04
Module::Runtime 0.012
Package::Stash 0.14
Scalar::Util 0
Try::Tiny 0
base 0
perl 5.006
strict 0
warnings 0
Class-Method-Modifiers-2.12
pathname: E/ET/ETHER/Class-Method-Modifiers-2.12.tar.gz
provides:
Class::Method::Modifiers 2.12
requirements:
B 0
Carp 0
Exporter 0
ExtUtils::MakeMaker 0
base 0
perl 5.006
strict 0
warnings 0
Cookie-Baker-0.10
pathname: K/KA/KAZEBURO/Cookie-Baker-0.10.tar.gz
provides:
Cookie::Baker 0.10
requirements:
Exporter 0
Module::Build::Tiny 0.035
URI::Escape 0
perl 5.008001
Cpanel-JSON-XS-4.07
pathname: R/RU/RURBAN/Cpanel-JSON-XS-4.07.tar.gz
provides:
Cpanel::JSON::XS 4.07
Cpanel::JSON::XS::Type undef
requirements:
ExtUtils::MakeMaker 0
Pod::Text 2.08
Data-Dump-1.23
pathname: G/GA/GAAS/Data-Dump-1.23.tar.gz
provides:
Data::Dump 1.23
Data::Dump::FilterContext undef
Data::Dump::Filtered undef
Data::Dump::Trace 0.02
Data::Dump::Trace::Call 0.02
Data::Dump::Trace::Wrapper 0.02
requirements:
ExtUtils::MakeMaker 0
Symbol 0
Test 0
perl 5.006
Data-OptList-0.110
pathname: R/RJ/RJBS/Data-OptList-0.110.tar.gz
provides:
Data::OptList 0.110
requirements:
ExtUtils::MakeMaker 0
List::Util 0
Params::Util 0
Sub::Install 0.921
strict 0
warnings 0
Data-UUID-1.221
pathname: R/RJ/RJBS/Data-UUID-1.221.tar.gz
provides:
Data::UUID 1.221
requirements:
Digest::MD5 0
ExtUtils::MakeMaker 0
Devel-GlobalDestruction-0.14
pathname: H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz
provides:
Devel::GlobalDestruction 0.14
requirements:
ExtUtils::MakeMaker 0
Sub::Exporter::Progressive 0.001011
perl 5.006
Devel-StackTrace-2.03
pathname: D/DR/DROLSKY/Devel-StackTrace-2.03.tar.gz
provides:
Devel::StackTrace 2.03
Devel::StackTrace::Frame 2.03
requirements:
ExtUtils::MakeMaker 0
File::Spec 0
Scalar::Util 0
overload 0
perl 5.006
strict 0
warnings 0
Devel-StackTrace-AsHTML-0.15
pathname: M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz
provides:
Devel::StackTrace::AsHTML 0.15
requirements:
Devel::StackTrace 0
ExtUtils::MakeMaker 0
Digest-JHash-0.10
pathname: S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz
provides:
Digest::JHash 0.10
requirements:
DynaLoader 0
Exporter 0
ExtUtils::MakeMaker 0
perl 5.008
strict 0
vars 0
warnings 0
Dist-CheckConflicts-0.11
pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
provides:
Dist::CheckConflicts 0.11
requirements:
Carp 0
Exporter 0
ExtUtils::MakeMaker 6.30
Module::Runtime 0.009
base 0
strict 0
warnings 0
Encode-Locale-1.05
pathname: G/GA/GAAS/Encode-Locale-1.05.tar.gz
provides:
Encode::Locale 1.05
requirements:
Encode 2
Encode::Alias 0
ExtUtils::MakeMaker 0
perl 5.008
Exporter-Lite-0.08
pathname: N/NE/NEILB/Exporter-Lite-0.08.tar.gz
provides:
Exporter::Lite 0.08
requirements:
Carp 0
ExtUtils::MakeMaker 6.3
perl 5.006
strict 0
warnings 0
Exporter-Tiny-1.002001
pathname: T/TO/TOBYINK/Exporter-Tiny-1.002001.tar.gz
provides:
Exporter::Shiny 1.002001
Exporter::Tiny 1.002001
requirements:
ExtUtils::MakeMaker 6.17
perl 5.006001
ExtUtils-Config-0.008
pathname: L/LE/LEONT/ExtUtils-Config-0.008.tar.gz
provides:
ExtUtils::Config 0.008
requirements:
Data::Dumper 0
ExtUtils::MakeMaker 6.30
strict 0
warnings 0
ExtUtils-Helpers-0.026
pathname: L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz
provides:
ExtUtils::Helpers 0.026
ExtUtils::Helpers::Unix 0.026
ExtUtils::Helpers::VMS 0.026
ExtUtils::Helpers::Windows 0.026
requirements:
Carp 0
Exporter 5.57
ExtUtils::MakeMaker 0
File::Basename 0
File::Copy 0
File::Spec::Functions 0
Text::ParseWords 3.24
perl 5.006
strict 0
warnings 0
ExtUtils-InstallPaths-0.012
pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz
provides:
ExtUtils::InstallPaths 0.012
requirements:
Carp 0
ExtUtils::Config 0.002
ExtUtils::MakeMaker 0
File::Spec 0
perl 5.006
strict 0
warnings 0
File-ShareDir-1.116
pathname: R/RE/REHSACK/File-ShareDir-1.116.tar.gz
provides:
File::ShareDir 1.116
requirements:
Carp 0
Class::Inspector 1.12
ExtUtils::MakeMaker 0
File::ShareDir::Install 0.13
File::Spec 0.80
perl 5.008001
warnings 0
File-ShareDir-Install-0.13
pathname: E/ET/ETHER/File-ShareDir-Install-0.13.tar.gz
provides:
File::ShareDir::Install 0.13
requirements:
Carp 0
Exporter 0
ExtUtils::MakeMaker 0
File::Spec 0
IO::Dir 0
perl 5.006
strict 0
warnings 0
Filesys-Notify-Simple-0.13
pathname: M/MI/MIYAGAWA/Filesys-Notify-Simple-0.13.tar.gz
provides:
Filesys::Notify::Simple 0.13
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
HTTP-Date-6.02
pathname: G/GA/GAAS/HTTP-Date-6.02.tar.gz
provides:
HTTP::Date 6.02
requirements:
ExtUtils::MakeMaker 0
Time::Local 0
perl 5.006002
HTTP-Entity-Parser-0.21
pathname: K/KA/KAZEBURO/HTTP-Entity-Parser-0.21.tar.gz
provides:
HTTP::Entity::Parser 0.21
HTTP::Entity::Parser::JSON undef
HTTP::Entity::Parser::MultiPart undef
HTTP::Entity::Parser::OctetStream undef
HTTP::Entity::Parser::UrlEncoded undef
requirements:
Encode 0
File::Temp 0
HTTP::MultiPartParser 0
Hash::MultiValue 0
JSON::MaybeXS 1.003007
Module::Build::Tiny 0.035
Module::Load 0
Stream::Buffered 0
WWW::Form::UrlEncoded 0.23
perl 5.008001
HTTP-Headers-Fast-0.21
pathname: T/TO/TOKUHIROM/HTTP-Headers-Fast-0.21.tar.gz
provides:
HTTP::Headers::Fast 0.21
requirements:
HTTP::Date 0
Module::Build::Tiny 0.035
perl 5.008001
HTTP-Message-6.18
pathname: O/OA/OALDERS/HTTP-Message-6.18.tar.gz
provides:
HTTP::Config 6.18
HTTP::Headers 6.18
HTTP::Headers::Auth 6.18
HTTP::Headers::ETag 6.18
HTTP::Headers::Util 6.18
HTTP::Message 6.18
HTTP::Request 6.18
HTTP::Request::Common 6.18
HTTP::Response 6.18
HTTP::Status 6.18
requirements:
Carp 0
Compress::Raw::Zlib 0
Encode 2.21
Encode::Locale 1
Exporter 5.57
ExtUtils::MakeMaker 0
HTTP::Date 6
IO::Compress::Bzip2 2.021
IO::Compress::Deflate 0
IO::Compress::Gzip 0
IO::HTML 0
IO::Uncompress::Bunzip2 2.021
IO::Uncompress::Gunzip 0
IO::Uncompress::Inflate 0
IO::Uncompress::RawInflate 0
LWP::MediaTypes 6
MIME::Base64 2.1
MIME::QuotedPrint 0
Storable 0
URI 1.10
base 0
perl 5.008001
strict 0
warnings 0
HTTP-MultiPartParser-0.02
pathname: C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz
provides:
HTTP::MultiPartParser 0.02
requirements:
Carp 0
ExtUtils::MakeMaker 6.59
Scalar::Util 0
Test::Deep 0
Test::More 0.88
perl 5.008001
HTTP-Parser-XS-0.17
pathname: K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz
provides:
HTTP::Parser::XS 0.17
HTTP::Parser::XS::PP undef
requirements:
ExtUtils::MakeMaker 6.36
Test::More 0.96
Hash-MoreUtils-0.06
pathname: R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz
provides:
Hash::MoreUtils 0.06
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
Hash-MultiValue-0.16
pathname: A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz
provides:
Hash::MultiValue 0.16
requirements:
ExtUtils::MakeMaker 0
perl 5.008001
IO-HTML-1.001
pathname: C/CJ/CJM/IO-HTML-1.001.tar.gz
provides:
IO::HTML 1.001
requirements:
Carp 0
Encode 2.10
Exporter 5.57
ExtUtils::MakeMaker 6.30
IO-Socket-IP-0.39
pathname: P/PE/PEVANS/IO-Socket-IP-0.39.tar.gz
provides:
IO::Socket::IP 0.39
requirements:
IO::Socket 0
Socket 1.97
Test::More 0.88
IO-Socket-Timeout-0.32
pathname: D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz
provides:
IO::Socket::Timeout 0.32
IO::Socket::Timeout::Role::PerlIO 0.32
IO::Socket::Timeout::Role::SetSockOpt 0.32
requirements:
ExtUtils::MakeMaker 0
File::Spec 0
IO::Handle 0
IPC::Open3 0
Module::Build::Tiny 0.039
PerlIO::via::Timeout 0.32
Test::More 0
Test::TCP 0
JSON-MaybeXS-1.004000
pathname: H/HA/HAARG/JSON-MaybeXS-1.004000.tar.gz
provides:
JSON::MaybeXS 1.004000
requirements:
Carp 0
Cpanel::JSON::XS 2.3310
ExtUtils::MakeMaker 0
JSON::PP 2.27300
Scalar::Util 0
perl 5.006
JSON-PP-2.97001
pathname: I/IS/ISHIGAKI/JSON-PP-2.97001.tar.gz
provides:
JSON::PP 2.97001
JSON::PP::Boolean 2.97001
JSON::PP::IncrParser 2.97001
requirements:
ExtUtils::MakeMaker 0
Scalar::Util 1.08
Test::More 0
LWP-MediaTypes-6.02
pathname: G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz
provides:
LWP::MediaTypes 6.02
requirements:
ExtUtils::MakeMaker 0
perl 5.006002
List-MoreUtils-0.428
pathname: R/RE/REHSACK/List-MoreUtils-0.428.tar.gz
provides:
List::MoreUtils 0.428
List::MoreUtils::PP 0.428
requirements:
Exporter::Tiny 0.038
ExtUtils::MakeMaker 0
List::MoreUtils::XS 0.426
List-MoreUtils-XS-0.428
pathname: R/RE/REHSACK/List-MoreUtils-XS-0.428.tar.gz
provides:
List::MoreUtils::XS 0.428
requirements:
Carp 0
ExtUtils::MakeMaker 0
File::Basename 0
File::Copy 0
File::Path 0
File::Spec 0
IPC::Cmd 0
XSLoader 0.22
base 0
Log-Any-1.707
pathname: P/PR/PREACTION/Log-Any-1.707.tar.gz
provides:
Log::Any 1.707
Log::Any::Adapter 1.707
Log::Any::Adapter::Base 1.707
Log::Any::Adapter::File 1.707
Log::Any::Adapter::Null 1.707
Log::Any::Adapter::Stderr 1.707
Log::Any::Adapter::Stdout 1.707
Log::Any::Adapter::Syslog 1.707
Log::Any::Adapter::Test 1.707
Log::Any::Adapter::Util 1.707
Log::Any::Manager 1.707
Log::Any::Proxy 1.707
Log::Any::Proxy::Null 1.707
Log::Any::Proxy::Test 1.707
Log::Any::Test 1.707
requirements:
B 0
Carp 0
Data::Dumper 0
Exporter 0
ExtUtils::MakeMaker 0
Fcntl 0
File::Basename 0
FindBin 0
IO::File 0
Storable 0
Sys::Syslog 0
Test::Builder 0
constant 0
strict 0
warnings 0
MRO-Compat-0.13
pathname: H/HA/HAARG/MRO-Compat-0.13.tar.gz
provides:
MRO::Compat 0.13
requirements:
ExtUtils::MakeMaker 0
perl 5.006
Module-Build-0.4224
pathname: L/LE/LEONT/Module-Build-0.4224.tar.gz
provides:
Module::Build 0.4224
Module::Build::Base 0.4224
Module::Build::Compat 0.4224
Module::Build::Config 0.4224
Module::Build::Cookbook 0.4224
Module::Build::Dumper 0.4224
Module::Build::Notes 0.4224
Module::Build::PPMMaker 0.4224
Module::Build::Platform::Default 0.4224
Module::Build::Platform::MacOS 0.4224
Module::Build::Platform::Unix 0.4224
Module::Build::Platform::VMS 0.4224
Module::Build::Platform::VOS 0.4224
Module::Build::Platform::Windows 0.4224
Module::Build::Platform::aix 0.4224
Module::Build::Platform::cygwin 0.4224
Module::Build::Platform::darwin 0.4224
Module::Build::Platform::os2 0.4224
Module::Build::PodParser 0.4224
requirements:
CPAN::Meta 2.142060
CPAN::Meta::YAML 0.003
Cwd 0
Data::Dumper 0
ExtUtils::CBuilder 0.27
ExtUtils::Install 0
ExtUtils::Manifest 0
ExtUtils::Mkbootstrap 0
ExtUtils::ParseXS 2.21
File::Basename 0
File::Compare 0
File::Copy 0
File::Find 0
File::Path 0
File::Spec 0.82
File::Temp 0.15
Getopt::Long 0
Module::Metadata 1.000002
Parse::CPAN::Meta 1.4401
Perl::OSType 1
Pod::Man 2.17
TAP::Harness 3.29
Test::More 0.49
Text::Abbrev 0
Text::ParseWords 0
perl 5.006001
version 0.87
Module-Build-Tiny-0.039
pathname: L/LE/LEONT/Module-Build-Tiny-0.039.tar.gz
provides:
Module::Build::Tiny 0.039
requirements:
CPAN::Meta 0
DynaLoader 0
Exporter 5.57
ExtUtils::CBuilder 0
ExtUtils::Config 0.003
ExtUtils::Helpers 0.020
ExtUtils::Install 0
ExtUtils::InstallPaths 0.002
ExtUtils::ParseXS 0
File::Basename 0
File::Find 0
File::Path 0
File::Spec::Functions 0
Getopt::Long 2.36
JSON::PP 2
Pod::Man 0
TAP::Harness::Env 0
perl 5.006
strict 0
warnings 0
Module-Implementation-0.09
pathname: D/DR/DROLSKY/Module-Implementation-0.09.tar.gz
provides:
Module::Implementation 0.09
requirements:
Carp 0
ExtUtils::MakeMaker 0
Module::Runtime 0.012
Try::Tiny 0
strict 0
warnings 0
Module-Runtime-0.016
pathname: Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz
provides:
Module::Runtime 0.016
requirements:
Module::Build 0
Test::More 0.41
perl 5.006
strict 0
warnings 0
Mojolicious-8.06
pathname: S/SR/SRI/Mojolicious-8.06.tar.gz
provides:
Mojo undef
Mojo::Asset undef
Mojo::Asset::File undef
Mojo::Asset::Memory undef
Mojo::Base undef
Mojo::ByteStream undef
Mojo::Cache undef
Mojo::Collection undef
Mojo::Content undef
Mojo::Content::MultiPart undef
Mojo::Content::Single undef
Mojo::Cookie undef
Mojo::Cookie::Request undef
Mojo::Cookie::Response undef
Mojo::DOM undef
Mojo::DOM::CSS undef
Mojo::DOM::HTML undef
Mojo::Date undef
Mojo::DynamicMethods undef
Mojo::EventEmitter undef
Mojo::Exception undef
Mojo::File undef
Mojo::Headers undef
Mojo::HelloWorld undef
Mojo::Home undef
Mojo::IOLoop undef
Mojo::IOLoop::Client undef
Mojo::IOLoop::Delay undef
Mojo::IOLoop::Server undef
Mojo::IOLoop::Stream undef
Mojo::IOLoop::Subprocess undef
Mojo::IOLoop::TLS undef
Mojo::JSON undef
Mojo::JSON::Pointer undef
Mojo::Loader undef
Mojo::Log undef
Mojo::Message undef
Mojo::Message::Request undef
Mojo::Message::Response undef
Mojo::Parameters undef
Mojo::Path undef
Mojo::Promise undef
Mojo::Reactor undef
Mojo::Reactor::EV undef
Mojo::Reactor::Poll undef
Mojo::Server undef
Mojo::Server::CGI undef
Mojo::Server::Daemon undef
Mojo::Server::Hypnotoad undef
Mojo::Server::Morbo undef
Mojo::Server::Morbo::Backend undef
Mojo::Server::Morbo::Backend::Poll undef
Mojo::Server::PSGI undef
Mojo::Server::PSGI::_IO undef
Mojo::Server::Prefork undef
Mojo::Template undef
Mojo::Transaction undef
Mojo::Transaction::HTTP undef
Mojo::Transaction::WebSocket undef
Mojo::URL undef
Mojo::Upload undef
Mojo::UserAgent undef
Mojo::UserAgent::CookieJar undef
Mojo::UserAgent::Proxy undef
Mojo::UserAgent::Server undef
Mojo::UserAgent::Transactor undef
Mojo::Util undef
Mojo::WebSocket undef
Mojolicious 8.06
Mojolicious::Command undef
Mojolicious::Command::Author::cpanify undef
Mojolicious::Command::Author::generate undef
Mojolicious::Command::Author::generate::app undef
Mojolicious::Command::Author::generate::lite_app undef
Mojolicious::Command::Author::generate::makefile undef
Mojolicious::Command::Author::generate::plugin undef
Mojolicious::Command::Author::inflate undef
Mojolicious::Command::cgi undef
Mojolicious::Command::daemon undef
Mojolicious::Command::eval undef
Mojolicious::Command::get undef
Mojolicious::Command::prefork undef
Mojolicious::Command::psgi undef
Mojolicious::Command::routes undef
Mojolicious::Command::version undef
Mojolicious::Commands undef
Mojolicious::Controller undef
Mojolicious::Lite undef
Mojolicious::Plugin undef
Mojolicious::Plugin::Config undef
Mojolicious::Plugin::DefaultHelpers undef
Mojolicious::Plugin::EPLRenderer undef
Mojolicious::Plugin::EPRenderer undef
Mojolicious::Plugin::HeaderCondition undef
Mojolicious::Plugin::JSONConfig undef
Mojolicious::Plugin::Mount undef
Mojolicious::Plugin::PODRenderer undef
Mojolicious::Plugin::TagHelpers undef
Mojolicious::Plugins undef
Mojolicious::Renderer undef
Mojolicious::Routes undef
Mojolicious::Routes::Match undef
Mojolicious::Routes::Pattern undef
Mojolicious::Routes::Route undef
Mojolicious::Sessions undef
Mojolicious::Static undef
Mojolicious::Types undef
Mojolicious::Validator undef
Mojolicious::Validator::Validation undef
Test::Mojo undef
ojo undef
requirements:
ExtUtils::MakeMaker 0
IO::Socket::IP 0.37
JSON::PP 2.27103
List::Util 1.41
Time::Local 1.2
perl 5.010001
Moo-2.003004
pathname: H/HA/HAARG/Moo-2.003004.tar.gz
provides:
Method::Generate::Accessor undef
Method::Generate::BuildAll undef
Method::Generate::Constructor undef
Method::Generate::DemolishAll undef
Moo 2.003004
Moo::HandleMoose undef
Moo::HandleMoose::FakeConstructor undef
Moo::HandleMoose::FakeMetaClass undef
Moo::HandleMoose::_TypeMap undef
Moo::Object undef
Moo::Role 2.003004
Moo::_Utils undef
Moo::_mro undef
Moo::_strictures undef
Moo::sification undef
oo undef
requirements:
Class::Method::Modifiers 1.1
Devel::GlobalDestruction 0.11
Exporter 5.57
ExtUtils::MakeMaker 0
Module::Runtime 0.014
Role::Tiny 2.000004
Scalar::Util 0
Sub::Defer 2.003001
Sub::Quote 2.003001
perl 5.006
MooX-Types-MooseLike-0.29
pathname: M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
provides:
MooX::Types::MooseLike 0.29
MooX::Types::MooseLike::Base 0.29
requirements:
ExtUtils::MakeMaker 0
Module::Runtime 0.014
MooX-Types-MooseLike-Numeric-1.03
pathname: M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz
provides:
MooX::Types::MooseLike::Numeric 1.03
requirements:
ExtUtils::MakeMaker 0
Moo 1.004002
MooX::Types::MooseLike 0.23
Test::Fatal 0.003
Test::More 0.96
Net-Server-2.009
pathname: R/RH/RHANDOM/Net-Server-2.009.tar.gz
provides:
Net::Server 2.009
Net::Server::Daemonize 0.06
Net::Server::Fork undef
Net::Server::HTTP undef
Net::Server::INET undef
Net::Server::INET::Handle undef
Net::Server::Log::Log::Log4perl undef
Net::Server::Log::Sys::Syslog undef
Net::Server::MultiType undef
Net::Server::Multiplex undef
Net::Server::Multiplex::MUX undef
Net::Server::PSGI undef
Net::Server::PreFork undef
Net::Server::PreForkSimple undef
Net::Server::Proto undef
Net::Server::Proto::SSL undef
Net::Server::Proto::SSLEAY undef
Net::Server::Proto::TCP undef
Net::Server::Proto::UDP undef
Net::Server::Proto::UNIX undef
Net::Server::Proto::UNIXDGRAM undef
Net::Server::SIG 0.03
Net::Server::Single undef
Net::Server::TiedHandle 2.009
requirements:
ExtUtils::MakeMaker 6.30
File::Temp 0
IO::Socket 0
POSIX 0
Socket 0
Time::HiRes 0
POSIX-strftime-Compiler-0.42
pathname: K/KA/KAZEBURO/POSIX-strftime-Compiler-0.42.tar.gz
provides:
POSIX::strftime::Compiler 0.42
requirements:
Carp 0
Exporter 0
Module::Build 0.38
POSIX 0
Time::Local 0
perl 5.008001
Package-Stash-0.37
pathname: D/DO/DOY/Package-Stash-0.37.tar.gz
provides:
Package::Stash 0.37
Package::Stash::PP 0.37
requirements:
B 0
Carp 0
Config 0
Dist::CheckConflicts 0.02
ExtUtils::MakeMaker 0
File::Spec 0
Getopt::Long 0
Module::Implementation 0.06
Package::Stash::XS 0.26
Scalar::Util 0
Symbol 0
Text::ParseWords 0
constant 0
strict 0
warnings 0
Package-Stash-XS-0.28
pathname: D/DO/DOY/Package-Stash-XS-0.28.tar.gz
provides:
Package::Stash::XS 0.28
requirements:
ExtUtils::MakeMaker 6.30
XSLoader 0
strict 0
warnings 0
Params-Util-1.07
pathname: A/AD/ADAMK/Params-Util-1.07.tar.gz
provides:
Params::Util 1.07
requirements:
ExtUtils::CBuilder 0.27
ExtUtils::MakeMaker 6.52
File::Spec 0.80
Scalar::Util 1.18
Test::More 0.42
perl 5.00503
PerlIO-via-Timeout-0.32
pathname: D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz
provides:
PerlIO::via::Timeout 0.32
requirements:
Exporter 5.57
ExtUtils::MakeMaker 0
File::Spec 0
IO::Handle 0
IPC::Open3 0
Module::Build::Tiny 0.039
PerlIO::via 0
Test::More 0
Test::TCP 0
Time::HiRes 0
Plack-1.0047
pathname: M/MI/MIYAGAWA/Plack-1.0047.tar.gz
provides:
HTTP::Message::PSGI undef
HTTP::Server::PSGI undef
Plack 1.0047
Plack::App::CGIBin undef
Plack::App::Cascade undef
Plack::App::Directory undef
Plack::App::File undef
Plack::App::PSGIBin undef
Plack::App::URLMap undef
Plack::App::WrapCGI undef
Plack::Builder undef
Plack::Component undef
Plack::HTTPParser undef
Plack::HTTPParser::PP undef
Plack::Handler undef
Plack::Handler::Apache1 undef
Plack::Handler::Apache2 undef
Plack::Handler::Apache2::Registry undef
Plack::Handler::CGI undef
Plack::Handler::CGI::Writer undef
Plack::Handler::FCGI undef
Plack::Handler::HTTP::Server::PSGI undef
Plack::Handler::Standalone undef
Plack::LWPish undef
Plack::Loader undef
Plack::Loader::Delayed undef
Plack::Loader::Restarter undef
Plack::Loader::Shotgun undef
Plack::MIME undef
Plack::Middleware undef
Plack::Middleware::AccessLog undef
Plack::Middleware::AccessLog::Timed undef
Plack::Middleware::Auth::Basic undef
Plack::Middleware::BufferedStreaming undef
Plack::Middleware::Chunked undef
Plack::Middleware::Conditional undef
Plack::Middleware::ConditionalGET undef
Plack::Middleware::ContentLength undef
Plack::Middleware::ContentMD5 undef
Plack::Middleware::ErrorDocument undef
Plack::Middleware::HTTPExceptions undef
Plack::Middleware::Head undef
Plack::Middleware::IIS6ScriptNameFix undef
Plack::Middleware::IIS7KeepAliveFix undef
Plack::Middleware::JSONP undef
Plack::Middleware::LighttpdScriptNameFix undef
Plack::Middleware::Lint undef
Plack::Middleware::Log4perl undef
Plack::Middleware::LogDispatch undef
Plack::Middleware::NullLogger undef
Plack::Middleware::RearrangeHeaders undef
Plack::Middleware::Recursive undef
Plack::Middleware::Refresh undef
Plack::Middleware::Runtime undef
Plack::Middleware::SimpleContentFilter undef
Plack::Middleware::SimpleLogger undef
Plack::Middleware::StackTrace undef
Plack::Middleware::Static undef
Plack::Middleware::XFramework undef
Plack::Middleware::XSendfile undef
Plack::Recursive::ForwardRequest undef
Plack::Request 1.0047
Plack::Request::Upload undef
Plack::Response 1.0047
Plack::Runner undef
Plack::TempBuffer undef
Plack::Test undef
Plack::Test::MockHTTP undef
Plack::Test::Server undef
Plack::Test::Suite undef
Plack::Util undef
Plack::Util::Accessor undef
Plack::Util::IOWithPath undef
Plack::Util::Prototype undef
requirements:
Apache::LogFormat::Compiler 0.33
Cookie::Baker 0.07
Devel::StackTrace 1.23
Devel::StackTrace::AsHTML 0.11
ExtUtils::MakeMaker 0
File::ShareDir 1.00
File::ShareDir::Install 0.06
Filesys::Notify::Simple 0
HTTP::Entity::Parser 0.17
HTTP::Headers::Fast 0.18
HTTP::Message 5.814
HTTP::Tiny 0.034
Hash::MultiValue 0.05
Pod::Usage 1.36
Stream::Buffered 0.02
Test::TCP 2.15
Try::Tiny 0
URI 1.59
WWW::Form::UrlEncoded 0.23
parent 0
perl 5.008001
Redis-1.991
pathname: D/DA/DAMS/Redis-1.991.tar.gz
provides:
Redis 1.991
Redis::Hash 1.991
Redis::List 1.991
Redis::Sentinel 1.991
requirements:
ExtUtils::MakeMaker 6.63_03
IO::Socket::Timeout 0.29
Module::Build::Tiny 0.039
Try::Tiny 0
perl 5.006
Role-Tiny-2.000006
pathname: H/HA/HAARG/Role-Tiny-2.000006.tar.gz
provides:
Role::Tiny 2.000006
Role::Tiny::With 2.000006
requirements:
Exporter 5.57
perl 5.006
Scalar-List-Utils-1.50
pathname: P/PE/PEVANS/Scalar-List-Utils-1.50.tar.gz
provides:
List::Util 1.50
List::Util::XS 1.50
Scalar::Util 1.50
Sub::Util 1.50
requirements:
ExtUtils::MakeMaker 0
Test::More 0
perl 5.006
Starman-0.4014
pathname: M/MI/MIYAGAWA/Starman-0.4014.tar.gz
provides:
HTTP::Server::PSGI::Net::Server::PreFork undef
Plack::Handler::Starman undef
Starman 0.4014
Starman::Server undef
requirements:
Data::Dump 0
HTTP::Date 0
HTTP::Parser::XS 0
HTTP::Status 0
Module::Build::Tiny 0.039
Net::Server 2.007
Plack 0.9971
Test::TCP 2.00
parent 0
perl 5.008001
Stream-Buffered-0.03
pathname: D/DO/DOY/Stream-Buffered-0.03.tar.gz
provides:
Stream::Buffered 0.03
Stream::Buffered::Auto undef
Stream::Buffered::File undef
Stream::Buffered::PerlIO undef
requirements:
ExtUtils::MakeMaker 6.30
IO::File 1.14
String-RewritePrefix-0.007
pathname: R/RJ/RJBS/String-RewritePrefix-0.007.tar.gz
provides:
String::RewritePrefix 0.007
requirements:
Carp 0
ExtUtils::MakeMaker 6.30
Sub::Exporter 0.972
strict 0
warnings 0
Sub-Exporter-0.987
pathname: R/RJ/RJBS/Sub-Exporter-0.987.tar.gz
provides:
Sub::Exporter 0.987
Sub::Exporter::Util 0.987
requirements:
Carp 0
Data::OptList 0.100
ExtUtils::MakeMaker 6.30
Params::Util 0.14
Sub::Install 0.92
strict 0
warnings 0
Sub-Exporter-Progressive-0.001013
pathname: F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz
provides:
Sub::Exporter::Progressive 0.001013
requirements:
ExtUtils::MakeMaker 0
Sub-Install-0.928
pathname: R/RJ/RJBS/Sub-Install-0.928.tar.gz
provides:
Sub::Install 0.928
requirements:
B 0
Carp 0
ExtUtils::MakeMaker 6.30
Scalar::Util 0
strict 0
warnings 0
Sub-Quote-2.005001
pathname: H/HA/HAARG/Sub-Quote-2.005001.tar.gz
provides:
Sub::Defer 2.005001
Sub::Quote 2.005001
requirements:
ExtUtils::MakeMaker 0
Scalar::Util 0
perl 5.006
Task-Weaken-1.06
pathname: E/ET/ETHER/Task-Weaken-1.06.tar.gz
provides:
Task::Weaken 1.06
requirements:
Config 0
ExtUtils::MakeMaker 0
File::Spec 0
Scalar::Util 1.14
perl 5.006
strict 0
Test-Class-0.50
pathname: E/ET/ETHER/Test-Class-0.50.tar.gz
provides:
Test::Class 0.50
Test::Class::Load 0.50
Test::Class::MethodInfo 0.50
requirements:
Attribute::Handlers 0.77
Carp 0
ExtUtils::MakeMaker 0
File::Find 0
File::Spec 0
MRO::Compat 0.11
Module::Runtime 0
Storable 2.04
Test::Builder 0.78
Test::Builder::Tester 1.02
Test::Simple 0.78
Try::Tiny 0
constant 0
perl 5.008001
strict 0
warnings 0
Test-Deep-1.128
pathname: R/RJ/RJBS/Test-Deep-1.128.tar.gz
provides:
Test::Deep 1.128
Test::Deep::All undef
Test::Deep::Any undef
Test::Deep::Array undef
Test::Deep::ArrayEach undef
Test::Deep::ArrayElementsOnly undef
Test::Deep::ArrayLength undef
Test::Deep::ArrayLengthOnly undef
Test::Deep::Blessed undef
Test::Deep::Boolean undef
Test::Deep::Cache undef
Test::Deep::Cache::Simple undef
Test::Deep::Class undef
Test::Deep::Cmp undef
Test::Deep::Code undef
Test::Deep::Hash undef
Test::Deep::HashEach undef
Test::Deep::HashElements undef
Test::Deep::HashKeys undef
Test::Deep::HashKeysOnly undef
Test::Deep::Ignore undef
Test::Deep::Isa undef
Test::Deep::ListMethods undef
Test::Deep::MM undef
Test::Deep::Methods undef
Test::Deep::NoTest undef
Test::Deep::None undef
Test::Deep::Number undef
Test::Deep::Obj undef
Test::Deep::Ref undef
Test::Deep::RefType undef
Test::Deep::Regexp undef
Test::Deep::RegexpMatches undef
Test::Deep::RegexpOnly undef
Test::Deep::RegexpRef undef
Test::Deep::RegexpRefOnly undef
Test::Deep::RegexpVersion undef
Test::Deep::ScalarRef undef
Test::Deep::ScalarRefOnly undef
Test::Deep::Set undef
Test::Deep::Shallow undef
Test::Deep::Stack undef
Test::Deep::String undef
Test::Deep::SubHash undef
Test::Deep::SubHashElements undef
Test::Deep::SubHashKeys undef
Test::Deep::SubHashKeysOnly undef
Test::Deep::SuperHash undef
Test::Deep::SuperHashElements undef
Test::Deep::SuperHashKeys undef
Test::Deep::SuperHashKeysOnly undef
requirements:
ExtUtils::MakeMaker 0
List::Util 1.09
Scalar::Util 1.09
Test::Builder 0
Test-Deep-UnorderedPairs-0.006
pathname: E/ET/ETHER/Test-Deep-UnorderedPairs-0.006.tar.gz
provides:
Test::Deep::UnorderedPairs 0.006
requirements:
Carp 0
Exporter 5.57
ExtUtils::MakeMaker 0
Test::Deep::ArrayLength 0
Test::Deep::Cmp 0
Test::Deep::Set 0
parent 0
perl 5.006
strict 0
warnings 0
Test-Fatal-0.014
pathname: R/RJ/RJBS/Test-Fatal-0.014.tar.gz
provides:
Test::Fatal 0.014
requirements:
Carp 0
Exporter 5.57
ExtUtils::MakeMaker 0
Test::Builder 0
Try::Tiny 0.07
strict 0
warnings 0
Test-Mock-Redis-0.20
pathname: J/JL/JLAVALLEE/Test-Mock-Redis-0.20.tar.gz
provides:
Test::Mock::Redis 0.20
Test::Mock::Redis::Hash undef
Test::Mock::Redis::List undef
Test::Mock::Redis::PossiblyVolatile undef
Test::Mock::Redis::Set undef
Test::Mock::Redis::ZSet undef
requirements:
Class::Method::Modifiers 0
Module::Build 0.4
Package::Stash 0.34
Scalar::Util 0
Test::Deep 0
Test::Deep::UnorderedPairs 0
Test::Fatal 0
Test::More 0.88
Try::Tiny 0
namespace::clean 0
Test-SharedFork-0.35
pathname: E/EX/EXODIST/Test-SharedFork-0.35.tar.gz
provides:
Test::SharedFork 0.35
Test::SharedFork::Array undef
Test::SharedFork::Scalar undef
Test::SharedFork::Store undef
requirements:
ExtUtils::MakeMaker 6.64
File::Temp 0
Test::Builder 0.32
Test::Builder::Module 0
Test::More 0.88
perl 5.008_001
Test-TCP-2.19
pathname: T/TO/TOKUHIROM/Test-TCP-2.19.tar.gz
provides:
Net::EmptyPort undef
Test::TCP 2.19
Test::TCP::CheckPort undef
requirements:
ExtUtils::MakeMaker 6.64
IO::Socket::INET 0
IO::Socket::IP 0
Test::More 0
Test::SharedFork 0.29
Time::HiRes 0
perl 5.008001
Time-Duration-1.20
pathname: N/NE/NEILB/Time-Duration-1.20.tar.gz
provides:
Time::Duration 1.20
requirements:
Exporter 0
ExtUtils::MakeMaker 0
constant 0
perl 5.006
strict 0
warnings 0
Time-Duration-Parse-0.14
pathname: N/NE/NEILB/Time-Duration-Parse-0.14.tar.gz
provides:
Time::Duration::Parse 0.14
requirements:
Carp 0
Exporter::Lite 0
ExtUtils::MakeMaker 0
perl 5.006
strict 0
warnings 0
Try-Tiny-0.30
pathname: E/ET/ETHER/Try-Tiny-0.30.tar.gz
provides:
Try::Tiny 0.30
requirements:
Carp 0
Exporter 5.57
ExtUtils::MakeMaker 0
constant 0
perl 5.006
strict 0
warnings 0
URI-1.74
pathname: E/ET/ETHER/URI-1.74.tar.gz
provides:
URI 1.74
URI::Escape 3.31
URI::Heuristic 4.20
URI::IRI 1.74
URI::QueryParam 1.74
URI::Split 1.74
URI::URL 5.04
URI::WithBase 2.20
URI::data 1.74
URI::file 4.21
URI::file::Base 1.74
URI::file::FAT 1.74
URI::file::Mac 1.74
URI::file::OS2 1.74
URI::file::QNX 1.74
URI::file::Unix 1.74
URI::file::Win32 1.74
URI::ftp 1.74
URI::gopher 1.74
URI::http 1.74
URI::https 1.74
URI::ldap 1.74
URI::ldapi 1.74
URI::ldaps 1.74
URI::mailto 1.74
URI::mms 1.74
URI::news 1.74
URI::nntp 1.74
URI::pop 1.74
URI::rlogin 1.74
URI::rsync 1.74
URI::rtsp 1.74
URI::rtspu 1.74
URI::sftp 1.74
URI::sip 1.74
URI::sips 1.74
URI::snews 1.74
URI::ssh 1.74
URI::telnet 1.74
URI::tn3270 1.74
URI::urn 1.74
URI::urn::isbn 1.74
URI::urn::oid 1.74
requirements:
Carp 0
Cwd 0
Data::Dumper 0
Encode 0
Exporter 5.57
ExtUtils::MakeMaker 0
MIME::Base64 2
Net::Domain 0
Scalar::Util 0
constant 0
integer 0
overload 0
parent 0
perl 5.008001
strict 0
utf8 0
warnings 0
Variable-Magic-0.62
pathname: V/VP/VPIT/Variable-Magic-0.62.tar.gz
provides:
Variable::Magic 0.62
requirements:
Carp 0
Config 0
Exporter 0
ExtUtils::MakeMaker 0
IO::Handle 0
IO::Select 0
IPC::Open3 0
POSIX 0
Socket 0
Test::More 0
XSLoader 0
base 0
lib 0
perl 5.008
WWW-Form-UrlEncoded-0.25
pathname: K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.25.tar.gz
provides:
WWW::Form::UrlEncoded 0.25
WWW::Form::UrlEncoded::PP undef
requirements:
Exporter 0
Module::Build 0.4005
perl 5.008001
XSLoader-0.24
pathname: S/SA/SAPER/XSLoader-0.24.tar.gz
provides:
XSLoader 0.24
requirements:
ExtUtils::MakeMaker 0
Test::More 0.47
namespace-clean-0.27
pathname: R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz
provides:
namespace::clean 0.27
requirements:
B::Hooks::EndOfScope 0.12
ExtUtils::MakeMaker 0
Package::Stash 0.23
perl 5.008001
version: "3"
services:
redis:
image: redis:5-alpine
networks:
app_network:
aliases:
- cache_server
expose:
- 6379
app_1:
build:
context: .
dockerfile: Dockerfile
depends_on:
- redis
networks:
- app_network
expose:
- 5000
ports:
- "5000:5000"
app_2:
build:
context: .
dockerfile: Dockerfile
depends_on:
- redis
networks:
- app_network
expose:
- 5000
ports:
- "5001:5000"
networks:
app_network: {}
FROM perl:5.28
RUN curl -L http://cpanmin.us | perl - App::cpanminus
RUN cpanm Carton
COPY app.psgi /app/app.psgi
COPY cpanfile /app/cpanfile
COPY cpanfile.snapshot /app/cpanfile.snapshot
RUN cd /app && carton install --deployment
WORKDIR /app
CMD carton exec -- starman --listen :5000 -a app.psgi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment