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
-
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
-
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
-
Author: BINGOS
String::Numeric - Determine whether a string represents a numeric value
Author: CHANSEN
-
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
-
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 https://metacpan.org/release/Acme-CPANModules-XSVersions.
SOURCE
Source repository is at https://github.com/perlancar/perl-Acme-CPANModules-XSVersions.
SEE ALSO
Acme::CPANModules - about the Acme::CPANModules namespace
cpanmodules - CLI tool to let you browse/view the lists
AUTHOR
perlancar <perlancar@cpan.org>
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 <perlancar@cpan.org>.
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 https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-XSVersions
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.