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

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

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
        Author: RJBS <https://metacpan.org/author/RJBS>

        XS module: Algorithm::Diff::XS

    Algorithm::LUHN
        Author: NEILB <https://metacpan.org/author/NEILB>

        XS module: Algorithm::LUHN_XS

    Algorithm::PageRank
        Author: XERN <https://metacpan.org/author/XERN>

        XS module: Algorithm::PageRank::XS

    Algorithm::RectanglesContainingDot
        Author: SALVA <https://metacpan.org/author/SALVA>

        XS module: Algorithm::RectanglesContainingDot_XS

    Bytes::Random
        Author: JOHND <https://metacpan.org/author/JOHND>

        XS module: Bytes::Random::XS

    Class::Accessor::Fast
        Author: KASEI <https://metacpan.org/author/KASEI>

        XS module: Class::Accessor::Fast::XS

    Class::C3
        Author: HAARG <https://metacpan.org/author/HAARG>

        XS module: Class::C3::XS

    Class::Load
        Author: ETHER <https://metacpan.org/author/ETHER>

        XS module: Class::Load::XS

    Convert::Bencode
        Author: ORCLEV <https://metacpan.org/author/ORCLEV>

        XS module: Convert::Bencode_XS

    Crypt::Passwd
        Author: LUISMUNOZ <https://metacpan.org/author/LUISMUNOZ>

        XS module: Crypt::Passwd::XS

    Crypt::TEA_PP
        Author: JAHIY <https://metacpan.org/author/JAHIY>

        XS module: Crypt::TEA_XS

    Crypt::XXTEA_PP
        Author: JAHIY <https://metacpan.org/author/JAHIY>

        XS module: Crypt::XXTEA_XS

    DDC::PP
        Author: MOOCOW <https://metacpan.org/author/MOOCOW>

        XS module: DDC::XS

    Crypt::Skip32
        Author: ESH <https://metacpan.org/author/ESH>

        XS module: Crypt::Skip32::XS

    Date::Calc
        Author: STBEY <https://metacpan.org/author/STBEY>

        XS module: Date::Calc::XS

        PP module: Date::Calc::PP

    Directory::Iterator
        Author: SANBEG <https://metacpan.org/author/SANBEG>

        XS module: Directory::Iterator::XS

        PP module: Directory::Iterator::PP

    Encode
        Author: DANKOGAI <https://metacpan.org/author/DANKOGAI>

        XS module: Encode::XS

    Encoding::FixLatin
        Author: GRANTM <https://metacpan.org/author/GRANTM>

        XS module: Encoding::FixLatin::XS

    File::MMagic
        Author: KNOK <https://metacpan.org/author/KNOK>

        XS module: File::MMagic::XS

    Geo::Coordinates::UTM
        Author: GRAHAMC <https://metacpan.org/author/GRAHAMC>

        XS module: Geo::Coordinates::UTM::XS

    Geo::Distance
        Author: BLUEFEET <https://metacpan.org/author/BLUEFEET>

        XS module: Geo::Distance::XS

    Geo::Hash
        Author: ANDYA <https://metacpan.org/author/ANDYA>

        XS module: Geo::Hash::XS

    HTTP::Headers::Fast
        Author: TOKUHIROM <https://metacpan.org/author/TOKUHIROM>

        XS module: HTTP::Headers::Fast::XS

    HTTP::Parser::XS::PP
        Author: KAZUHO <https://metacpan.org/author/KAZUHO>

        XS module: HTTP::Parser::XS

    Heap::Simple
        Author: THOSPEL <https://metacpan.org/author/THOSPEL>

        XS module: Heap::Simple::XS

    Image::Info
        Author: SREZIC <https://metacpan.org/author/SREZIC>

        XS module: Image::Info::XS

    JSON
        Author: ISHIGAKI <https://metacpan.org/author/ISHIGAKI>

        XS module: JSON::XS

        PP module: JSON::PP

    JSON::MaybeXS
        Author: ETHER <https://metacpan.org/author/ETHER>

        XS module: Cpanel::JSON::XS

    Language::Befunge::Vector
        Author: JQUELIN <https://metacpan.org/author/JQUELIN>

        XS module: Language::Befunge::Vector::XS

    Language::Befunge::Storage::Generic::Vec
        Author: JQUELIN <https://metacpan.org/author/JQUELIN>

        XS module: Language::Befunge::Storage::Generic::Vec::XS

    List::BinarySearch
        Author: DAVIDO <https://metacpan.org/author/DAVIDO>

        XS module: List::BinarySearch::XS

    List::Flatten
        Author: OBRADOVIC <https://metacpan.org/author/OBRADOVIC>

        XS module: List::Flatten::XS

    List::MoreUtils
        Author: REHSACK <https://metacpan.org/author/REHSACK>

        XS module: List::MoreUtils::XS

    List::SomeUtils
        Author: DROLSKY <https://metacpan.org/author/DROLSKY>

        XS module: List::SomeUtils::XS

    List::Util
        Author: PEVANS <https://metacpan.org/author/PEVANS>

        XS module: List::Util::XS

    List::UtilsBy
        Author: PEVANS <https://metacpan.org/author/PEVANS>

        XS module: List::UtilsBy::XS

    Math::Derivative
        Author: JGAMBLE <https://metacpan.org/author/JGAMBLE>

        XS module: Math::Derivative_XS

    Math::Gauss
        Author: JANERT <https://metacpan.org/author/JANERT>

        XS module: Math::Gauss::XS

    Math::Utils
        Author: JGAMBLE <https://metacpan.org/author/JGAMBLE>

        XS module: Math::Utils::XS

    MaxMind::DB::Reader
        Author: MAXMIND <https://metacpan.org/author/MAXMIND>

        XS module: MaxMind::DB::Reader::XS

    Mojo::Base
        Author: SRI <https://metacpan.org/author/SRI>

        XS module: Mojo::Base::XS

    Moo Author: HAARG <https://metacpan.org/author/HAARG>

        XS module: Class::XSAccessor

    Net::IP
        Author: MANU <https://metacpan.org/author/MANU>

        XS module: Net::IP::XS

    Net::SNMP
        Author: DTOWN <https://metacpan.org/author/DTOWN>

        XS module: Net::SNMP::XS

    Number::Closest
        Author: ACCARDO <https://metacpan.org/author/ACCARDO>

        XS module: Number::Closest::XS

    Object::Adhoc
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: Class::XSAccessor

    Object::Accessor
        Author: BINGOS <https://metacpan.org/author/BINGOS>

        XS module: Object::Accessor::XS

    Object::Tiny
        Author: ETHER <https://metacpan.org/author/ETHER>

        XS module: Object::Tiny::XS

    Object::Tiny::RW
        Author: SCHWIGON <https://metacpan.org/author/SCHWIGON>

        XS module: Object::Tiny::RW::XS

    PPI Author: OALDERS <https://metacpan.org/author/OALDERS>

        XS module: PPI::XS

    Package::Stash
        Author: ETHER <https://metacpan.org/author/ETHER>

        XS module: Package::Stash::XS

    Params::Validate
        Author: DROLSKY <https://metacpan.org/author/DROLSKY>

        XS module: Params::Validate::XS

    Path::Hilbert
        Author: PWBENNETT <https://metacpan.org/author/PWBENNETT>

        XS module: Path::Hilbert::XS

    PerlX::ArraySkip
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: PerlX::ArraySkip::XS

    PerlX::Maybe
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: PerlX::Maybe::XS

    PPI Author: OALDERS <https://metacpan.org/author/OALDERS>

        XS module: PPI::XS

    Protocol::Redis
        Author: UNDEF <https://metacpan.org/author/UNDEF>

        XS module: Protocol::Redis::XS

    Readonly
        Author: SANKO <https://metacpan.org/author/SANKO>

        XS module: Readonly::XS

    Ref::Util
        Author: ARC <https://metacpan.org/author/ARC>

        XS module: Ref::Util::XS

    Set::IntSpan::Fast
        Author: ANDYA <https://metacpan.org/author/ANDYA>

        XS module: Set::IntSpan::Fast::XS

    Set::Product
        Author: GRAY <https://metacpan.org/author/GRAY>

        XS module: Set::Product::XS

    SOAP::WSDL::Deserializer::XSD
        Author: SWALTERS <https://metacpan.org/author/SWALTERS>

        XS module: SOAP::WSDL::Deserializer::XSD_XS

    Sort::Naturally
        Author: BINGOS <https://metacpan.org/author/BINGOS>

        XS module: Sort::Naturally::XS

    String::Numeric
        Author: CHANSEN <https://metacpan.org/author/CHANSEN>

        XS module: String::Numeric::XS

    Template::Alloy
        Author: RHANDOM <https://metacpan.org/author/RHANDOM>

        XS module: Template::Alloy::XS

    Template::Stash
        Author: ABW <https://metacpan.org/author/ABW>

        XS module: Template::Stash::XS

    Text::CSV
        Author: ISHIGAKI <https://metacpan.org/author/ISHIGAKI>

        XS module: Text::CSV_XS

    Text::Levenshtein::Damerau
        Author: UGEXE <https://metacpan.org/author/UGEXE>

        XS module: Text::Levenshtein::Damerau::XS

    Time::Format
        Author: ROODE <https://metacpan.org/author/ROODE>

        XS module: Time::Format_XS

    Type::Params
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: Class::XSAccessor

    Type::Tiny
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: Type::Tiny::XS

    Tree::Object
        Author: PERLANCAR <https://metacpan.org/author/PERLANCAR>

        XS module: Tree::ObjectXS

    URL::Encode
        Author: CHANSEN <https://metacpan.org/author/CHANSEN>

        XS module: URL::Encode::XS

    Unix::Uptime::BSD
        Author: PIOTO <https://metacpan.org/author/PIOTO>

        XS module: Unix::Uptime::BSD::XS

    XML::CompactTree
        Author: PAJAS <https://metacpan.org/author/PAJAS>

        XS module: XML::CompactTree::XS

    YAML::PP
        Author: TINITA <https://metacpan.org/author/TINITA>

        XS module: YAML::XS

    match::simple
        Author: TOBYINK <https://metacpan.org/author/TOBYINK>

        XS module: match::simple::XS

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

    Missing::XS

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,
    Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two
    other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps
    required beyond that are considered a bug and can be reported to me.

COPYRIGHT AND LICENSE
    This software is copyright (c) 2023, 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-XSVe
    rsions>

    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.

