What's new on CPAN - April 2024
Welcome to “What’s new on CPAN”, a curated look at last month’s new CPAN uploads for your reading and programming pleasure. Enjoy!
APIs & Apps
- App::papersway (SPWHITTON) provides PaperWM-like window management for Sway and i3 window managers
- Sort lines of text from the command line using various reusable subroutine modules:
- Comparer with App::sort_by_comparer (PERLANCAR)
- Sorter with App::sort_by_sorter (PERLANCAR)
- SortKey with App::sort_by_sortkey (PERLANCAR)
- Access the OpenExchangeRates API with Net::Async::OpenExchRates (VNEALV)
- AI::Ollama::Client (CORION) interfaces with Ollama language models
Config & Devops
- Find and build Microsoft’s ONNX Runtime AI system with Alien::onnxruntime (EGOR)
- CPAN::Requirements::Dynamic (LEONT) will check that your system meets the prerequisites specified by a CPAN distribution
- Dist::Build (LEONT) provides another way to build and install Perl modules
- A couple of Dist::Zilla plugins:
- Dist::Zilla::Plugin::DistBuild (LEONT) for CPAN::Requirements::Dynamic (see above)
- Dist::Zilla::Plugin::DynamicPrereqs::Meta (LEONT) for Dist::Build (see above)
Data
- Load back Data::Dumper output via eval with Data::Dumper::UnDumper (BIGPRESH)
- Categorization of modules using modules with:
- Acme::CPANModules::BPOM::FoodRegistration (PERLANCAR) for modules pertaining to the Indonesian food and drug authority
- Acme::CPANModules::JSONVariants (PERLANCAR) for variants or extensions of JSON
- Use a SortKey module with Sort::Key via Sort::Key::SortKey (PERLANCAR)
- Get all the colors of the rainbow, sorted, from SortExample::Color::Rainbow::EN (PERLANCAR)
- Generate SortKey-based sort keys for:
- the number of occurrences of a string or regex pattern using SortKey::Num::pattern_count (PERLANCAR)
- the similarity to a reference string using SortKey::Num::similarity (PERLANCAR)
- a date extracted from text using SortKey::date_in_text (PERLANCAR)
- SortSpec::Perl::CPAN::ChangesGroup::PERLANCAR provides a specification for sorting groups of text in CPAN change files (PERLANCAR)
- Sort by a Comparer subroutine using Sorter::from_comparer (PERLANCAR)
- Sort by keys generated by a SortKey module with Sorter::from_sortkey (PERLANCAR)
- Generate short unique identifiers from numbers with Sqids (MYSOCIETY)
- TableData::Business::ID::BPOM::FoodAdditive (PERLANCAR) provides food additive data from the Indonesian food and drug authority
- A bevy of schemas employing the Sah schema format with:
- Sah::SchemaBundle::Business::ID::BCA (PERLANCAR) for schemas related to BCA (Bank Central Asia) bank
- Sah::SchemaBundle::Business::ID::Mandiri (PERLANCAR) for schemas related to Mandiri bank
- Sah::SchemaBundle::Comparer (PERLANCAR) for schemas related to Comparer
- Sah::SchemaBundle::Perl (PERLANCAR) for schemas related to Perl
- Sah::SchemaBundle::SortKey (PERLANCAR) for schemas related to SortKey
- Sah::SchemaBundle::Sorter (PERLANCAR) for schemas related to Sorter
Development & Version Control
- Benchmark various ways to handle exceptions with Bencher::Scenario::ExceptionHandling (PERLANCAR)
- Data::MiniDumpX (PERLANCAR) supports Plugin::System
- Generate fixtures for DBD::Mock::Session with DBD::Mock::Session::GenerateFixtures (UXYZAB)
- Net::EPP::Server (GBROWN) provides a high-level framework for developing EPP (Extensible Provisioning Protocol) servers
- Load an i3 workspace with AnyEvent::I3X::Workspace::OnDemand (WATERKIP)
- Parse and format datetimes from PDF’s using DateTime::Format::PDF (SKIM)
- Stringify references in:
- Data::Dump::HTML::Collapsible with Devel::Confess::Patch::UseDataDumpHTMLCollapsible (PERLANCAR)
- Data::Dump::HTML::PopUp with Devel::Confess::Patch::UseDataDumpHTMLPopUp (PERLANCAR)
- Test2::Tools::MIDI (JMATES) tests whether MIDI files contain particular MIDI structures and events
- Carp::Object (DAMI) is an object-oriented replacement for Carp or Carp::Clan
- Carp::Patch::OutputToBrowser (PERLANCAR) outputs a stacktrace to a web browser
- Easily profile code with Tiny::Prof (TIMKA)
- JSON::Ordered::Conditional (LNATION) and YAML::Ordered::Conditional (LNATION) provide a conditional language for use within JSON and YAML, respectively
- Generate CSAF (Common Security Advisory Framework) documents with CSAF (GDT)
- Generate DDL for database table creation using CXC::DB::DDL (DJERIUS)
- Comparer::date_in_text (PERLANCAR) is a Comparer that uses dates extracted from text
- Validation routines for the Mo object system:
- Mo::utils::Country (SKIM) for countries
- Mo::utils::TimeZone (SKIM) for timezones
- Number::Iterator (LNATION) is a simple iterator for numbers
Science & Mathematics
- Crypt::Passphrase::Bcrypt::Compat (LEONT) provides a bcrypt encoder for Crypt::Passphrase
Web
- In your Catalyst app, automatically put flash values into the next request’s stash with Catalyst::Plugin::Flash (ARISTOTLE)
- A whole slew of new plugins for the Mojolicious framework:
- Use OpenID Connect authentication with Mojolicious::Plugin::Authentication::OIDC (TYRRMINAL)
- Add more configuration options to Mojolicious::Plugin::Cron with Mojolicious::Plugin::Cron::Scheduler (TYRRMINAL)
- Run Sqitch database migrations using Mojolicious::Plugin::Migration::Sqitch (TYRRMINAL)
- Automatically load modules from namespaces with Mojolicious::Plugin::Module::Loader (TYRRMINAL)
- Access DBIx::Class with Mojolicious::Plugin::ORM::DBIx (TYRRMINAL)
- Mojolicious::Plugin::SendEmail for easily sending e-mails (TYRRMINAL)
- Disable sessions with Mojolicious::Plugin::Sessionless (TYRRMINAL)
- Plack::App::Login::Request (SKIM) is a Plack application for requesting login information. Tags::HTML::Login::Request (SKIM) generates the supporting HTML and CSS
- Generate image-related HTML tags with Tags::HTML::Image (SKIM)
- Use Future on the web with Web::Async (TEAM)
- Render JSON-based data structures as HTML tables with JSON::ToHTML (ARISTOTLE)
Other
- Perform basic arithmetic operations the paper and pencil way with Arithmetic::PaperAndPencil (JFORGET)
Tags
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub