Acme-CPANModules-XSVersions

 view release on metacpan or  search on metacpan

lib/Acme/CPANModules/XSVersions.pm  view on Meta::CPAN

        {module=>'Algorithm::RectanglesContainingDot', xs_module=>'Algorithm::RectanglesContainingDot_XS'},
        {module => 'Bytes::Random', xs_module => 'Bytes::Random::XS'},
        {module => 'Class::Accessor::Fast', xs_module => 'Class::Accessor::Fast::XS'},
        {module => 'Class::C3', xs_module => 'Class::C3::XS'},
        {module => 'Class::Load', xs_module => 'Class::Load::XS'},
        {module=>'Convert::Bencode', xs_module=>'Convert::Bencode_XS'},
        {module => 'Crypt::Passwd', xs_module => 'Crypt::Passwd::XS'},
        {module=>'Crypt::TEA_PP', xs_module=>'Crypt::TEA_XS'},
        {module=>'Crypt::XXTEA_PP', xs_module=>'Crypt::XXTEA_XS'},
        {module => 'DDC::PP', xs_module => 'DDC::XS'},
        {module => 'Crypt::Skip32', xs_module => 'Crypt::Skip32::XS'},
        {module => 'Date::Calc', pp_module=>'Date::Calc::PP', xs_module => 'Date::Calc::XS'},
        {module => 'Directory::Iterator', pp_module=>'Directory::Iterator::PP', xs_module => 'Directory::Iterator::XS'},
        {module => 'Encode', xs_module => 'Encode::XS'},
        {module => 'Encoding::FixLatin', xs_module => 'Encoding::FixLatin::XS'},
        {module => 'File::MMagic', xs_module => 'File::MMagic::XS'},
        {module => 'Geo::Coordinates::UTM', xs_module => 'Geo::Coordinates::UTM::XS'},
        {module => 'Geo::Distance', xs_module => 'Geo::Distance::XS'},
        {module => 'Geo::Hash', xs_module => 'Geo::Hash::XS'},
        {module => 'HTTP::Headers::Fast', xs_module => 'HTTP::Headers::Fast::XS'},
        {module => 'HTTP::Parser::XS::PP', xs_module => 'HTTP::Parser::XS'},
        {module => 'Heap::Simple', xs_module => 'Heap::Simple::XS'},
        {module => 'Image::Info', xs_module => 'Image::Info::XS'},
        {module => 'JSON', pp_module=>'JSON::PP', xs_module => 'JSON::XS'},
        {module => 'JSON::MaybeXS', xs_module => 'Cpanel::JSON::XS'},
        {module =>'Language::Befunge::Vector', xs_module => 'Language::Befunge::Vector::XS'},
        {module => 'Language::Befunge::Storage::Generic::Vec', xs_module => 'Language::Befunge::Storage::Generic::Vec::XS'},
        {module => 'List::BinarySearch', xs_module => 'List::BinarySearch::XS'},
        {module => 'List::Flatten', xs_module => 'List::Flatten::XS'},
        {module => 'List::MoreUtils', xs_module => 'List::MoreUtils::XS'},
        {module => 'List::SomeUtils', xs_module => 'List::SomeUtils::XS'},
        {module => 'List::Util', xs_module => 'List::Util::XS'},
        {module => 'List::UtilsBy', xs_module => 'List::UtilsBy::XS'},
        {module=>'Math::Derivative', xs_module=>'Math::Derivative_XS'},
        {module => 'Math::Gauss', xs_module => 'Math::Gauss::XS'},
        {module => 'Math::Utils', xs_module => 'Math::Utils::XS'},
        {module => 'MaxMind::DB::Reader', xs_module => 'MaxMind::DB::Reader::XS'},
        {module => 'Mojo::Base', xs_module => 'Mojo::Base::XS'},
        {module => 'Moo', xs_module => 'Class::XSAccessor'},
        # TODO: Mouse
        {module => 'Net::IP', xs_module => 'Net::IP::XS'},
        {module => 'Net::SNMP', xs_module => 'Net::SNMP::XS'},
        {module => 'Number::Closest', xs_module => 'Number::Closest::XS'},
        {module => 'Object::Adhoc', xs_module => 'Class::XSAccessor'},
        {module => 'Object::Accessor', xs_module => 'Object::Accessor::XS'},
        {module => 'Object::Tiny', xs_module => 'Object::Tiny::XS'},
        {module => 'Object::Tiny::RW', xs_module => 'Object::Tiny::RW::XS'},
        {module => 'PPI', xs_module => 'PPI::XS'},
        {module => 'Package::Stash', xs_module => 'Package::Stash::XS'},
        {module => 'Params::Validate', xs_module => 'Params::Validate::XS'},
        {module => 'Path::Hilbert', xs_module => 'Path::Hilbert::XS'},
        {module => 'PerlX::ArraySkip', xs_module => 'PerlX::ArraySkip::XS'},
        {module => 'PerlX::Maybe', xs_module => 'PerlX::Maybe::XS'},
        {module => 'PPI', xs_module => 'PPI::XS'},
        {module => 'Protocol::Redis', xs_module => 'Protocol::Redis::XS'},
        {module => 'Readonly', xs_module => 'Readonly::XS'},
        {module => 'Ref::Util', xs_module => 'Ref::Util::XS'},
        {module => 'Set::IntSpan::Fast', xs_module => 'Set::IntSpan::Fast::XS'},
        {module => 'Set::Product', xs_module => 'Set::Product::XS'},
        {module=>'SOAP::WSDL::Deserializer::XSD', xs_module=>'SOAP::WSDL::Deserializer::XSD_XS'},
        {module => 'Sort::Naturally', xs_module => 'Sort::Naturally::XS'},
        {module => 'String::Numeric', xs_module => 'String::Numeric::XS'},
        {module => 'Template::Alloy', xs_module => 'Template::Alloy::XS'},
        {module => 'Template::Stash', xs_module => 'Template::Stash::XS'},
        {module => 'Text::CSV', xs_module => 'Text::CSV_XS'},
        # Text::Levenshtein & Text::Levenshtein::XS are different modules
        {module => 'Text::Levenshtein::Damerau', xs_module => 'Text::Levenshtein::Damerau::XS'},
        {module => 'Time::Format', xs_module => 'Time::Format_XS'},
        {module => 'Type::Params', xs_module => 'Class::XSAccessor'},
        {module => 'Type::Tiny', xs_module => 'Type::Tiny::XS'},
        # Tree::Binary & Tree::Binary::XS are different modules
        {module => 'Tree::Object', xs_module => 'Tree::ObjectXS'},
        {module => 'URL::Encode', xs_module => 'URL::Encode::XS'},
        {module => 'Unix::Uptime::BSD', xs_module => 'Unix::Uptime::BSD::XS'},
        # Win32::Unicode & Win32::Unicode::XS?
        {module => 'XML::CompactTree', xs_module => 'XML::CompactTree::XS'},
        # XML::Hash & XML::Hash::XS are different modules
        {module => 'YAML::PP', xs_module => 'YAML::XS'},
        # ZooKeeper & ZooKeeper::XS?
        {module => 'match::simple', xs_module => 'match::simple::XS'},

    ],
};

1;
# ABSTRACT: List of Perl modules which have XS implementation or backend

__END__

=pod

=encoding UTF-8

=head1 NAME

Acme::CPANModules::XSVersions - List of Perl modules which have XS implementation or backend

=head1 VERSION

This document describes version 0.004 of Acme::CPANModules::XSVersions (from Perl distribution Acme-CPANModules-XSVersions), released on 2023-09-05.

=head1 SYNOPSIS

To install all XS versions of PP modules currently installed on your system:

 % perl -MAcme::CM::Get=XSVersions -MModule::Installed::Tiny=module_installed -E'for (@{$LIST->{entries}}) {
       next unless module_installed($_->{module}) || $_->{pp_module} && module_installed($_->{pp_module});
       say $_->{xs_module};
   }' | cpanm -n

(Note: To run the above snippet, you need to install
L<Acme::CPANModules::XSVersions> which you're reading right now, as well as
L<Acme::CM::Get>, L<Module::Installed::Tiny>, and L<cpanm>.)

=head1 DESCRIPTION

This list catalogs (pure-) Perl modules that have their XS counterparts ("fast
versions"), usually in separate distributions so the installation of the XS
version is optional. The two versions of the modules provide the same interface.
When the two modules are different in interface, they are not listed here.

lib/Acme/CPANModules/XSVersions.pm  view on Meta::CPAN

=item L<Path::Hilbert>

Author: L<PWBENNETT|https://metacpan.org/author/PWBENNETT>

XS module: L<Path::Hilbert::XS>

=item L<PerlX::ArraySkip>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

XS module: L<PerlX::ArraySkip::XS>

=item L<PerlX::Maybe>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

XS module: L<PerlX::Maybe::XS>

=item L<PPI>

Author: L<OALDERS|https://metacpan.org/author/OALDERS>

XS module: L<PPI::XS>

=item L<Protocol::Redis>

Author: L<UNDEF|https://metacpan.org/author/UNDEF>

XS module: L<Protocol::Redis::XS>

=item L<Readonly>

Author: L<SANKO|https://metacpan.org/author/SANKO>

XS module: L<Readonly::XS>

=item L<Ref::Util>

Author: L<ARC|https://metacpan.org/author/ARC>

XS module: L<Ref::Util::XS>

=item L<Set::IntSpan::Fast>

Author: L<ANDYA|https://metacpan.org/author/ANDYA>

XS module: L<Set::IntSpan::Fast::XS>

=item L<Set::Product>

Author: L<GRAY|https://metacpan.org/author/GRAY>

XS module: L<Set::Product::XS>

=item L<SOAP::WSDL::Deserializer::XSD>

Author: L<SWALTERS|https://metacpan.org/author/SWALTERS>

XS module: L<SOAP::WSDL::Deserializer::XSD_XS>

=item L<Sort::Naturally>

Author: L<BINGOS|https://metacpan.org/author/BINGOS>

XS module: L<Sort::Naturally::XS>

=item L<String::Numeric>

Author: L<CHANSEN|https://metacpan.org/author/CHANSEN>

XS module: L<String::Numeric::XS>

=item L<Template::Alloy>

Author: L<RHANDOM|https://metacpan.org/author/RHANDOM>

XS module: L<Template::Alloy::XS>

=item L<Template::Stash>

Author: L<ABW|https://metacpan.org/author/ABW>

XS module: L<Template::Stash::XS>

=item L<Text::CSV>

Author: L<ISHIGAKI|https://metacpan.org/author/ISHIGAKI>

XS module: L<Text::CSV_XS>

=item L<Text::Levenshtein::Damerau>

Author: L<UGEXE|https://metacpan.org/author/UGEXE>

XS module: L<Text::Levenshtein::Damerau::XS>

=item L<Time::Format>

Author: L<ROODE|https://metacpan.org/author/ROODE>

XS module: L<Time::Format_XS>

=item L<Type::Params>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

XS module: L<Class::XSAccessor>

=item L<Type::Tiny>

Author: L<TOBYINK|https://metacpan.org/author/TOBYINK>

XS module: L<Type::Tiny::XS>

=item L<Tree::Object>

Author: L<PERLANCAR|https://metacpan.org/author/PERLANCAR>

XS module: L<Tree::ObjectXS>

=item L<URL::Encode>

Author: L<CHANSEN|https://metacpan.org/author/CHANSEN>

XS module: L<URL::Encode::XS>



( run in 1.022 second using v1.01-cache-2.11-cpan-63c85eba8c4 )