Archive-Libarchive
view release on metacpan or search on metacpan
lib/Archive/Libarchive.pm view on Meta::CPAN
package Archive::Libarchive;
use strict;
use warnings;
use 5.020;
use experimental qw( signatures );
use Archive::Libarchive::Lib;
use Archive::Libarchive::ArchiveRead;
use Archive::Libarchive::ArchiveWrite;
use Archive::Libarchive::Match;
use Archive::Libarchive::DiskRead;
use Archive::Libarchive::DiskWrite;
use Archive::Libarchive::Entry;
use Archive::Libarchive::EntryLinkResolver;
use parent qw( Exporter );
# ABSTRACT: Modern Perl bindings to libarchive
our $VERSION = '0.09'; # VERSION
my $ffi = Archive::Libarchive::Lib->ffi;
$ffi->mangler(undef);
$ffi->attach( archive_bzlib_version => [] => 'string' );
$ffi->attach( archive_liblz4_version => [] => 'string' );
$ffi->attach( archive_liblzma_version => [] => 'string' );
$ffi->attach( archive_version_details => [] => 'string' );
$ffi->attach( archive_version_number => [] => 'int' );
$ffi->attach( archive_version_string => [] => 'string' );
$ffi->attach( archive_zlib_version => [] => 'string' );
$ffi->ignore_not_found(1);
$ffi->attach( archive_libzstd_version => [] => 'string' );
$ffi->ignore_not_found(0);
sub versions ($class)
{
my %v = (
bzlib => archive_bzlib_version() // 'undef',
liblz4 => archive_liblz4_version() // 'undef',
liblzma => archive_liblzma_version() // 'undef',
libarchive => archive_version_string() // 'undef',
zlib => archive_zlib_version() // 'undef',
perl => $],
);
if(__PACKAGE__->can('archive_libzstd_version'))
{
$v{libzstd} = archive_libzstd_version();
}
else
{
$v{libzstd} = 'undef';
}
foreach my $mod (qw( FFI::Platypus Archive::Libarchive FFI::CheckLib Alien::Libarchive3 Foo ))
{
my $version = $mod->VERSION;
$v{$mod} = $version if defined $version;
}
%v;
}
require Archive::Libarchive::Lib::Constants unless $Archive::Libarchive::no_gen;
our @EXPORT_OK = grep /^(archive|ARCHIVE|AE)_/, keys %Archive::Libarchive::;
our %EXPORT_TAGS = (
all => \@EXPORT_OK,
const => [grep /^(ARCHIVE|AE)_/, @EXPORT_OK],
func => [grep /^archive_/, @EXPORT_OK],
);
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Archive::Libarchive - Modern Perl bindings to libarchive
=head1 VERSION
version 0.09
=head1 SYNOPSIS
use 5.020;
( run in 3.199 seconds using v1.01-cache-2.11-cpan-2398b32b56e )