NAME Acme::CPANModules::XSVersions - List of XS versions of Perl modules VERSION This document describes version 0.003 of Acme::CPANModules::XSVersions (from Perl distribution Acme-CPANModules-XSVersions), released on 2022-03-18. 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 Acme::CPANModules::XSVersions which you're reading right now, as well as Acme::CM::Get, Module::Installed::Tiny, and cpanm.) 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. Usually authors use "::XS" or "_XS" suffix for the XS version (for example, Type::Tiny is the PP/pure-perl version and Type::Tiny::XS is the XS version). Or sometimes the other way around is done, a module is an XS module and another with suffix "::PP" or "_PP" is the PP version. And often a module like "JSON" is one that can automatically use the XS version ("JSON::XS") when it's available or fallback to the PP version ("JSON::PP"). Additions much welcome. ACME::CPANMODULES ENTRIES * Algorithm::Diff - Compute `intelligent' differences between two files / lists Author: RJBS * Algorithm::LUHN - Calculate the Modulus 10 Double Add Double checksum Author: NEILB * Algorithm::PageRank - Calculate PageRank in Perl Author: XERN * Algorithm::RectanglesContainingDot - find rectangles containing a given dot Author: SALVA * Bytes::Random - Perl extension to generate random bytes. Author: JOHND * Class::Accessor::Fast - Faster, but less expandable, accessors Author: KASEI * Class::C3 - A pragma to use the C3 method resolution order algorithm Author: HAARG * Class::Load - A working (require "Class::Name") and more Author: ETHER * Convert::Bencode - Functions for converting to/from bencoded strings Author: ORCLEV * Crypt::Passwd - Perl wrapper around the UFC Crypt Author: LUISMUNOZ * Crypt::TEA_PP - Pure Perl Implementation of the Tiny Encryption Algorithm Author: JAHIY * Crypt::XXTEA_PP - Pure Perl Implementation of Corrected Block Tiny Encryption Algorithm Author: JAHIY * DDC::PP - pure-perl DDC::XS clone: constants Author: MOOCOW * Crypt::Skip32 - 32-bit block cipher based on Skipjack Author: ESH * Date::Calc Author: STBEY * Directory::Iterator - Simple, efficient recursive directory listing Author: SANBEG * Encode - character encodings in Perl Author: DANKOGAI * Encoding::FixLatin - takes mixed encoding input and produces UTF-8 output Author: GRANTM * File::MMagic - Guess file type Author: KNOK * Geo::Coordinates::UTM - Perl extension for Latitiude Longitude conversions. Author: GRAHAMC * Geo::Distance - Calculate distances and closest locations. (DEPRECATED) Author: BLUEFEET * Geo::Hash - Encode / decode geohash.org locations. Author: ANDYA * HTTP::Headers::Fast - faster implementation of HTTP::Headers Author: TOKUHIROM * HTTP::Parser::XS::PP Author: KAZUHO * Heap::Simple - Fast and easy to use classic heaps Author: THOSPEL * Image::Info - Extract meta information from image files Author: SREZIC * JSON::PP - JSON::XS compatible pure-Perl module. Author: ISHIGAKI * Language::Befunge::Vector - an opaque, N-dimensional vector class Author: JQUELIN * Language::Befunge::Storage::Generic::Vec - a generic N-dimensional LaheySpace Author: JQUELIN * List::BinarySearch - Binary Search within a sorted array. Author: DAVIDO * List::Flatten - Interpolate array references in a list Author: OBRADOVIC * List::MoreUtils - Provide the stuff missing in List::Util Author: REHSACK * List::SomeUtils - Provide the stuff missing in List::Util Author: DROLSKY * List::Util - A selection of general-utility list subroutines Author: PEVANS * List::UtilsBy - higher-order list utility functions Author: PEVANS * Math::Derivative - Numeric 1st and 2nd order differentiation Author: JGAMBLE * Math::Gauss - Gaussian distribution function and its inverse Author: JANERT * Math::Utils - Useful mathematical functions not in Perl. Author: JGAMBLE * MaxMind::DB::Reader - Read MaxMind DB files and look up IP addresses Author: MAXMIND * Mojo::Base - Minimal base class for Mojo projects Author: SRI * Net::IP - Perl extension for manipulating IPv4/IPv6 addresses Author: MANU * Net::SNMP - Object oriented interface to SNMP Author: DTOWN * Number::Closest - Find number(s) closest to a number in a list of numbers Author: ACCARDO * Object::Tiny - Class building as simple as it gets Author: ETHER * Object::Tiny::RW - Class building as simple as it gets (with rw accessors) Author: SCHWIGON * PPI - Parse, Analyze and Manipulate Perl (without perl) Author: OALDERS * Package::Stash - Routines for manipulating stashes Author: ETHER * Params::Validate - Validate method/function parameters Author: DROLSKY * Path::Hilbert - A no-frills converter between 1D and 2D spaces using the Hilbert curve Author: PWBENNETT * PerlX::ArraySkip - sub { shift; @_ } Author: TOBYINK * PerlX::Maybe - return a pair only if they are both defined Author: TOBYINK * Protocol::Redis - Redis protocol parser/encoder with asynchronous capabilities. Author: UNDEF * Readonly - Facility for creating read-only scalars, arrays, hashes Author: SANKO * Ref::Util - Utility functions for checking references Author: ARC * Set::IntSpan::Fast - Fast handling of sets containing integer spans. Author: ANDYA * Set::Product - generates the cartesian product of a set of lists Author: GRAY * SOAP::WSDL::Deserializer::XSD - Deserializer SOAP messages into SOAP::WSDL::XSD::Typelib:: objects Author: SWALTERS * Sort::Naturally Author: BINGOS * String::Numeric - Determine whether a string represents a numeric value Author: CHANSEN * Template::Alloy Author: RHANDOM * Template::Stash - Magical storage for template variables Author: ATOOMIC * Text::CSV - comma-separated values manipulator (using XS or PurePerl) Author: ISHIGAKI * Text::Levenshtein::Damerau - Damerau Levenshtein edit distance. Author: UGEXE * Time::Format - Easy-to-use date/time formatting. Author: ROODE * Type::Tiny - tiny, yet Moo(se)-compatible type constraint Author: TOBYINK * Tree::Object - Generic tree objects Author: PERLANCAR * URL::Encode Author: CHANSEN * Unix::Uptime::BSD - BSD implementation of Unix::Uptime (for Darwin, DragonFly, and *BSD) Author: PIOTO * XML::CompactTree - builder of compact tree structures from XML documents Author: PAJAS * YAML::PP - YAML 1.2 processor Author: TINITA * match::simple - simplified clone of smartmatch operator Author: TOBYINK FAQ What is an Acme::CPANModules::* module? An Acme::CPANModules::* module, like this module, contains just a list of module names that share a common characteristics. It is a way to categorize modules and document CPAN. See Acme::CPANModules for more details. What are ways to use this Acme::CPANModules module? Aside from reading this Acme::CPANModules module's POD documentation, you can install all the listed modules (entries) using cpanm-cpanmodules script (from App::cpanm::cpanmodules distribution): % cpanm-cpanmodules -n XSVersions Alternatively you can use the cpanmodules CLI (from App::cpanmodules distribution): % cpanmodules ls-entries XSVersions | cpanm -n or Acme::CM::Get: % perl -MAcme::CM::Get=XSVersions -E'say $_->{module} for @{ $LIST->{entries} }' | cpanm -n or directly: % perl -MAcme::CPANModules::XSVersions -E'say $_->{module} for @{ $Acme::CPANModules::XSVersions::LIST->{entries} }' | cpanm -n This Acme::CPANModules module also helps lcpan produce a more meaningful result for "lcpan related-mods" command when it comes to finding related modules for the modules listed in this Acme::CPANModules module. See App::lcpan::Cmd::related_mods for more details on how "related modules" are found. HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . SEE ALSO Acme::CPANModules - about the Acme::CPANModules namespace cpanmodules - CLI tool to let you browse/view the lists AUTHOR perlancar CONTRIBUTING To contribute, you can send patches by email/via RT, or send pull requests on GitHub. Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via: % prove -l If you want to build the distribution (e.g. to try to install it locally on your system), you can install Dist::Zilla, Dist::Zilla::PluginBundle::Author::PERLANCAR, and sometimes one or two other Dist::Zilla plugin and/or Pod::Weaver::Plugin. Any additional steps required beyond that are considered a bug and can be reported to me. COPYRIGHT AND LICENSE This software is copyright (c) 2022, 2019 by perlancar . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. BUGS Please report any bugs or feature requests on the bugtracker website When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.