diff --git a/Makefile.PL b/Makefile.PL index 2051c988..6c7ef4b6 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -33,7 +33,6 @@ my %WriteMakefileArgs = ( "BSON::Types" => 0, "Carp" => 0, "Compress::Zlib" => 0, - "Compress::Snappy" => 0, "Digest::MD5" => 0, "Encode" => 0, "Exporter" => "5.57", diff --git a/dist.ini b/dist.ini index 10a7af77..968c0f49 100644 --- a/dist.ini +++ b/dist.ini @@ -226,6 +226,7 @@ remove = Authen::SASL remove = BSON::XS remove = Class::XSAccessor remove = Compress::Zstd +remove = Compress::Snappy remove = DateTime remove = DateTime::Tiny remove = Errno diff --git a/lib/MongoDB/_Protocol.pm b/lib/MongoDB/_Protocol.pm index bf8fb518..0fe301cf 100644 --- a/lib/MongoDB/_Protocol.pm +++ b/lib/MongoDB/_Protocol.pm @@ -26,7 +26,6 @@ use MongoDB::Error; use MongoDB::_Types qw/ to_IxHash /; use Compress::Zlib (); -use Compress::Snappy (); use constant { OP_REPLY => 1, # Reply to a client request. responseTo is set @@ -322,6 +321,11 @@ sub _assert_zstd { unless eval { require Compress::Zstd }; } +sub _assert_snappy { + MongoDB::UsageError->throw(qq/Compress::Snappy must be installed to support snappy compression\n/) + unless eval { require Compress::Snappy }; +} + # decompressors indexed by ID. my @DECOMPRESSOR = ( # none @@ -345,6 +349,7 @@ sub get_compressor { }; } elsif ($name eq 'snappy') { + _assert_snappy(); return { id => 1, callback => sub { Compress::Snappy::compress(shift) },