CPANscan logo

CPANscan

Recent Perl modules, releases and favorites.
Last updated 16 August 2026 08:30 AM
Perl logo

URI-Encode

Favorite | 16 Aug 2026 03:07 AM | Author: MITHUN | Version: v1.1.1
Upvotes: 4 | CPAN Testers: Pass 99.9%Fail 0.1%
Simple percent Encoding/Decoding
URI::Encode is a small, easy-to-use Perl module for percent-encoding and decoding URIs that provides both an object-oriented API and simple functional helpers. By default it preserves reserved characters so links remain human-friendly and clickable in plain text, and it converts input to UTF-8 before encoding; options let you force encoding of reserved characters or prevent double-encoding of already-percent-encoded data. It is handy when preparing URLs for HTTP clients or embedding links in email and is a portable alternative to faster XS-based encoders like URI::Escape::XS. The module depends on Encode and has seen fixes for correct decoding of lower-case percent sequences and for double-encoding behavior, with a recent cleanup removing use of the special $' variable.
Perl logo

Test-JSON-Schema-Acceptance

Release | 16 Aug 2026 12:23 AM | Author: ETHER | Version: 1.038
Upvotes: 2 | CPAN Testers: Pass 100.0%
Acceptance testing for JSON-Schema based validators
Test::JSON::Schema::Acceptance lets Perl projects run the official JSON Schema Test Suite to confirm that a JSON Schema validator implements the specification correctly and interoperates with other implementations. You give it a small adapter callback that validates either Perl data structures or JSON strings and it will run the suite for a chosen draft (draft3 through draft2020-12, v1, or a custom test directory), handle remote resources when needed, mark individual tests as TODO or skip, and produce per-file pass/fail summaries and diagnostic output. It is primarily useful to library authors and integrators who need automated acceptance testing against the canonical test data rather than to general application developers. Recent releases updated the bundled test data and removed a dependency on Ref::Util to simplify installation.
Perl logo

Syntax-Highlight-Basic

Release | 16 Aug 2026 12:05 AM | Author: SPATOCS | Version: v0.1.2
CPAN Testers: Pass 38.1%Fail 47.6%N/A 14.3%
Basic syntax highlighting for code
Syntax::Highlight::Basic is a lightweight, pure-Perl library for turning source code into highlighted output that is easy to embed in web pages or terminals. It builds simplified runtime data from Vim syntax files and then tokenizes code into Vim-compatible highlight groups so you can produce HTML with Pygments-style CSS classes, HTML with inline styles, or ANSI terminal color escapes. You create an instance with optional syntax_dirs to supply custom language data, then call highlight($code, $language, \%opts) to get formatted output and choose format and wrapping. The module includes a fallback tokenizer if no specific language is provided and is geared toward projects that need a simple, portable highlighter without external dependencies.
Perl logo

Media-AssetView

Release | 16 Aug 2026 12:05 AM | Author: PERLANCAR | Version: 0.001
CPAN Testers: Pass 97.1%N/A 2.9%
Handle the Asset-Views directory organization
Media::AssetView helps you organize media repositories by building a parallel Views hierarchy of symlinks from a simple Assets layout so you can browse or serve the same files grouped by attributes like character, product, type or whether AI was used. You keep your actual media in assets/ following a compact naming convention and run the exportable create_views_symlinks function to populate views/ directories without duplicating files. That function is not exported by default and returns an enveloped array with HTTP-like status codes, a reason string and optional payload and metadata so callers can detect success or failure programmatically. This is useful for teams or automation that need to curate, filter or present large photo, audio and video collections using filesystem-level views.
Perl logo

Net-OAuth

Release | 15 Aug 2026 11:54 PM | Author: RRWO | Version: 0.32
Upvotes: 6 | CPAN Testers: Pass 100.0%
OAuth 1.0 for Perl
Net::OAuth is a low-level Perl library for composing, signing, parsing and verifying OAuth 1.0 protocol messages, giving you classes for the common request and response types and helpers to serialize to or from Authorization headers, URLs, CGI/Catalyst parameter hashes and POST bodies. It focuses on message construction and signature handling rather than managing tokens or providing a full service provider or consumer framework, so most users building clients will start with Net::OAuth::Client which wraps the usual request-token, authorize and access-token flow. The module supports PLAINTEXT, HMAC-SHA1, HMAC-SHA256 and RSA-SHA1 signatures and handles OAuth 1.0a features and UTF-8 encoding rules; messages can be inspected and manipulated via simple accessors and exported as URL query strings, form bodies or authorization headers. Recent maintenance releases emphasize security and interoperability, notably fixing resource-exhaustion and downgrade behaviors, pinning RSA-SHA1 padding and hash choices to maintain RFC 5849 compatibility, switching to Crypt::SysRandom for nonces, and updating tests and documentation, so it is a safe and practical choice when you need direct control over OAuth message handling in Perl.
Perl logo

MIDI-RtMidi-FFI

Release | 15 Aug 2026 08:50 PM | Author: JBARRETT | Version: 0.13
Upvotes: 2 | CPAN Testers: Fail 100.0%
Bindings for librtmidi - Realtime MIDI library
MIDI::RtMidi::FFI is a thin Perl FFI binding to the RtMidi C library that gives Perl programs low-latency realtime MIDI input and output across platforms such as ALSA, JACK, CoreMIDI and Windows Multimedia. It exposes RtMidi's C API so you can enumerate and open ports, create virtual ports (not on Windows), send and receive raw MIDI messages, and hook a callback or obtain a nonblocking filehandle for integration with event loops. Higher-level conveniences are available via the companion MIDI::RtMidi::FFI::Device class and message encoding/decoding is handled through MIDI::Stream for easier construction and parsing of MIDI events. The module requires librtmidi 4.0.0 or later and while it is functional it is described as alpha software so you should expect occasional instability; the recent 0.13 update added device methods connected_to() and connected_to_name() to report what remote endpoint a port is linked to and included documentation and dependency cleanup.
Perl logo

Litavis

Release | 15 Aug 2026 08:05 PM | Author: LNATION | Version: 0.05
CPAN Testers: Pass 98.2%N/A 1.8%
CSS preprocessor and compiler implemented in C via XS
Litavis is a high-performance CSS preprocessor and compiler written in portable C and exposed to Perl via XS, designed to replace the pure-Perl Crayon with a focus on speed and correctness. It provides familiar preprocessing features such as nested selectors and parent references, variables, mixins and map variables, and it evaluates a range of color functions at compile time while preserving source order and offering cascade-aware deduplication and optional property sorting. You can parse individual files or whole directories, accumulate inputs across parses, emit minified or pretty-printed output, write directly to files and reset state between builds. The engine is packaged as reusable C header files so other XS modules can embed it and the module exports an include_dir helper to locate those headers. The recent 0.05 release includes Windows and Colouring::In::XS related fixes and more robust header discovery, improving cross-platform reliability.
Perl logo

Eshu

Release | 15 Aug 2026 07:44 PM | Author: LNATION | Version: 0.11
Upvotes: 1 | CPAN Testers: Pass 88.0%Unknown 12.0%
Indentation fixer for C, Perl, XS, XML, HTML, CSS, JavaScript and POD source files
Eshu is a fast XS-based tool that automatically fixes indentation and can produce syntax-highlighted HTML for a wide range of languages including C, Perl, JavaScript/TypeScript, Python, Go, Rust, Java, PHP, Ruby, Lua, Bash, SQL, YAML, JSON, XML/HTML and POD. It offers per-language routines and a generic dispatcher to reformat strings, single files or entire directories while preserving code content and handling language-specific constructs, and it supports configurable tabs or spaces and indent widths. The highlighter emits HTML with token classes you can style, and the distribution includes a command-line program for in-place fixes, diffs and CI checks plus a vim plugin for editor integration. Eshu auto-detects languages by extension, skips very large or binary files, and returns structured results, making it a practical choice for developers who want fast, consistent indentation fixes and portable syntax highlighting across many source types.
Perl logo

Object-Proto

Release | 15 Aug 2026 07:35 PM | Author: LNATION | Version: 0.20
Upvotes: 2 | CPAN Testers: Pass 98.9%N/A 1.1%
Objects with prototype chains
Object::Proto is a high-performance object system for Perl that stores objects as compact arrays and maps property names to slot indices at compile time, giving you fast, blessed objects that still respond to isa and can and run normal package methods. You declare classes and typed attributes with the object keyword or Object::Proto::define, get generated accessors and support for positional or named constructors, and can use built-in or custom type checks with optional XS-level registration for minimal overhead. The module offers rich attribute modifiers such as required, readonly, default, lazy with builders, triggers, weak references, private attributes, clearer and predicate helpers, and reader/writer aliases, plus inheritance including multiple parents, roles, method modifiers, prototype chains, locking, freezing, cloning, singletons, and optional function-style accessors for maximum speed. BUILD and DEMOLISH hooks are supported for initialization and cleanup. If you need compact, fast objects with expressive attribute features and fine control over mutability and memory behavior, Object::Proto is a strong fit.
Perl logo

PDF-Make

Release | 15 Aug 2026 07:23 PM | Author: LNATION | Version: 0.10
CPAN Testers: Pass 51.4%Fail 45.9%N/A 2.7%
PDF generation, parsing, and editing
PDF::Make is a comprehensive Perl toolkit for creating, reading, and editing PDF files that offers both a recommended high-level, chainable Builder API for common document tasks and a low-level XS API for direct, fine-grained control of PDF internals. With the Builder you can generate pages, manage fonts and layout, add wrapped text, images, outlines and tables of contents with simple chainable calls, while the Document/Page/Canvas API exposes raw PDF objects and content streams for advanced needs. The distribution also includes parsers and readers for importing and extracting text, tables, annotations and form data, support for standard fonts and embedded JPEG/PNG images, interactive features like links and AcroForms, document features such as layers, watermarks and redaction, plus security options including encryption and digital signatures. It is designed to be feature-rich yet self-contained at runtime apart from Object::Proto for the Builder layer, so it is suitable whether you need quick programmatic PDF generation or full control over PDF structure and serialization.
Perl logo

Kubernetes-REST

Release | 15 Aug 2026 04:17 PM | Author: GETTY | Version: 1.107
Upvotes: 3 | CPAN Testers: Pass 100.0%
A Perl REST Client for the Kubernetes API
Kubernetes::REST is a focused Perl client that makes the Kubernetes API easy to use from Perl by returning typed IO::K8s objects instead of raw hashrefs and by automatically building resource URLs from object metadata. It provides simple, familiar operations for listing, getting, creating, updating, patching and deleting resources, plus higher level conveniences such as idempotent ensure, batch ensure_all and ensure_only with pruning, streaming watch and log support, and pod port‑forward, exec and attach when your HTTP backend offers duplex I/O. The HTTP layer is pluggable so you can use the default LWP backend, HTTP::Tiny, or supply an async backend, and the client can load the cluster resource map from OpenAPI or accept custom mappings for CRDs. It handles kubeconfig and in‑cluster credentials, preserves raw bytes for pod logs while decoding object data as UTF‑8, and exposes building blocks for async wrappers. A recent noteworthy change adds patch_status and update_status to write through the /status subresource, addressing the case where the API server strips status from writes to the main endpoint and letting you update object status correctly for CRDs and built‑in kinds.
Perl logo

Net-Async-MCP

Release | 15 Aug 2026 04:14 PM | Author: GETTY | Version: 0.004
CPAN Testers: Pass 26.7%Fail 73.3%
Async MCP (Model Context Protocol) client for IO::Async
Net::Async::MCP is an IO::Async-based, non-blocking client for the Model Context Protocol that lets Perl programs talk to MCP servers via three interchangeable transports: in-process (direct MCP::Server calls), stdio (subprocess over stdin/stdout), and streamable HTTP. It exposes an async Future-based API (usable with Future::AsyncAwait) to perform the MCP handshake, list and call tools, fetch prompts and resources, and open subscriptions while surfacing server-initiated notifications and input requests back to the application. The client supports configurable protocol version, client capabilities, per-request headers, timeouts and stall timeouts for HTTP, and provides high-level helpers so a caller rarely sees low-level JSON-RPC details. If you need to integrate a Perl service with MCP-compatible model servers, handle long-running tool calls, or respond to server prompts from an async event loop, this module is relevant. The recent 0.004 release improves reliability across transports, adds an on_subscription_end event to notify when a subscription stream ends, and fixes streaming, pagination, header handling and input_required round trips so subscriptions and notifications work robustly over HTTP and stdio.
Perl logo

DBI

Release | 15 Aug 2026 11:31 AM | Author: HMBRAND | Version: 1.652
Upvotes: 284 | CPAN Testers: Pass 90.2%Fail 4.9%N/A 4.9%
Database independent interface for Perl
DBI is the standard database interface for Perl that gives your scripts a consistent, portable way to talk to many different databases by delegating the actual work to driver modules. It supplies a familiar set of operations like connect, prepare/execute, fetch, placeholders and bind values, plus helpers for common patterns such as selectrow or selectall, transaction control with AutoCommit/commit/rollback, quoting and metadata queries. DBI is intentionally a thin, stable layer that handles driver loading, error handling, tracing and callbacks while letting DBD::* drivers implement engine specifics, so some advanced features depend on your driver. It is mature, well documented and widely supported by the Perl community and tooling, making it a good choice whenever you need database access from Perl.
Perl logo

Punk-OAuth2

Release | 15 Aug 2026 10:25 AM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 63.2%Fail 12.3%N/A 24.6%
OAuth2 and OpenID Connect for Punk applications
Punk::OAuth2 brings OAuth2 and OpenID Connect support to Punk web applications by providing the client-side authorization code flow with PKCE, signed single-use state, OIDC nonce handling, and id_token verification so you can add "Log in with Google" or similar to your app with confidence. The distribution's behavior lives in Punk::Plugin::OAuth2 and supplies convenient presets for Google, GitHub, and generic OIDC discovery, plus keywords and helpers to build login routes and manage refreshes while keeping sessions lightweight by default. The package also includes optional server and resource-server components for issuing and validating tokens, and most of the protocol and crypto work is implemented in XS for performance with Crypt::JWS used for signature checks. If you are building a Punk application that needs standard OAuth2/OIDC authentication or a compact OAuth2 server or resource checker, this module is directly relevant; if you are not using the Punk framework it will be less useful. This is the initial 0.01 release which introduces the full client flow, presets, helpers, and the accompanying server and checker tools.
Perl logo

MIDI-Stream

Release | 15 Aug 2026 08:12 AM | Author: JBARRETT | Version: 0.006
CPAN Testers: Pass 100.0%
MIDI bytestream decoding and encoding
MIDI::Stream is a small realtime toolkit for converting between raw MIDI byte streams and higher-level MIDI events, providing a decoder to parse incoming bytes into events and an encoder to turn performance or system events into bytes for MIDI hardware or other software. The classes are stateful and intended to represent a single MIDI port or device, so you should use one instance per stream to avoid running-status confusion, message collision, or tempo inaccuracies since there are no merge facilities. The module supports event callbacks for reacting to parsed messages and the recent 0.006 update fixes callback cancellation bugs and adds regex support for event-name matching when registering callbacks. Note that a prior 0.005 release introduced an incompatible encoder option named "concat" that changes whether multiple messages are concatenated or returned as an array, so review the change log when upgrading.
Perl logo

App-rainbarf

Release | 15 Aug 2026 08:02 AM | Author: SYP | Version: 1.5
Upvotes: 4 | CPAN Testers: Pass 95.8%Fail 4.2%
CPU/RAM/battery stats chart bar for tmux (and GNU screen)
rainbarf is a small Perl utility that renders compact, eye-catching resource usage charts for inclusion in tmux or GNU screen status lines, letting you see CPU, memory and battery trends at a glance. It generates a tiny visual bar you can drop into your terminal multiplexer configuration so you have continuous, unobtrusive monitoring of system resources while you work. This makes it a good fit for developers and sysadmins who want lightweight, real-time indicators in their terminal workflow without switching to a separate monitoring tool.
Perl logo

GD

Release | 15 Aug 2026 07:59 AM | Author: RURBAN | Version: 2.87
Upvotes: 32 | CPAN Testers: Pass 65.7%Fail 32.4%Unknown 1.9%
Perl interface to the libgd graphics library
GD is the standard Perl wrapper around the libgd graphics library that lets you create, edit and output bitmap images from Perl code. It provides an object model for images, fonts, polygons and a simpler GD::Simple layer, and supports drawing primitives like lines, rectangles, arcs and filled polygons, color and alpha control, brushes and patterned fills, text rendering with built-in bitmap fonts and TrueType via stringFT when libgd is built with FreeType, and animated GIF assembly. You can create images from scratch or load common formats and write PNG, JPEG, GIF, BMP, TIFF, WebP, HEIF and AVIF and other formats depending on your libgd build, and the module exposes copying, resizing, resampling, rotation, many interpolation methods and a range of image filters such as blur, emboss, negate and pixelate. It supports truecolor images and palette images, alpha blending and saving of alpha channels, and offers utilities for color allocation and palette management. The exact feature set depends on the installed libgd version so some older or optional behaviors may be deprecated or unavailable, but for most web and script-based image tasks GD gives a low-level, scriptable way to generate and manipulate bitmaps directly from Perl.
Perl logo

Mojolicious-Plugin-BarefootJS

Release | 15 Aug 2026 05:55 AM | Author: KFLY | Version: v0.31.6
Upvotes: 2 | CPAN Testers: Pass 84.3%N/A 15.7%
Mojolicious integration for BarefootJS
Mojolicious::Plugin::BarefootJS plugs the BarefootJS server runtime into Mojolicious so you can do server-side rendering with BarefootJS inside a Mojolicious app. The plugin registers a "bf" controller helper that lazily creates a per-request BarefootJS runtime backed by BarefootJS::Backend::Mojo and lets you render compiled BarefootJS templates as native Mojolicious templates. It is the right choice when you want tight integration of BarefootJS SSR with Mojolicious, while BarefootJS::Backend::Xslate is provided for non-Mojolicious or PSGI hosts. Recent updates make the build manifest load lazily and cache by mtime and size so starting the server before the first build no longer breaks stash seeding and manifest rewrites are picked up without restarting the server.
Perl logo

BarefootJS-Backend-Xslate

Release | 15 Aug 2026 05:55 AM | Author: KFLY | Version: v0.31.6
CPAN Testers: Pass 82.9%N/A 17.1%
Text::Xslate (Kolon) rendering backend for BarefootJS
BarefootJS::Backend::Xslate lets the BarefootJS runtime render its templates using Text::Xslate with Kolon syntax, making it easy to use Kolon ".tx" templates that call the runtime as a bf object. You can pass a prebuilt Text::Xslate instance or give template paths and options and the backend will build a type=>'html' Xslate that auto-escapes interpolations while supporting helpers that return raw markup via mark_raw. The module exposes the operations the runtime needs such as render_named, encode_json and materialize, lets you override the JSON encoder, and requires no special function map because the compile-time @barefootjs/xslate adapter emits calls as bf methods. It is framework agnostic so it runs under PSGI/Plack or standalone and is actively maintained with frequent releases.
Perl logo

BarefootJS

Release | 15 Aug 2026 05:55 AM | Author: KFLY | Version: v0.31.6
CPAN Testers: Pass 87.7%Fail 2.8%N/A 9.4%
Engine- and framework-agnostic server runtime for BarefootJS marked templates
BarefootJS is a small, actively maintained server-side runtime for rendering JSX/TSX that have been compiled into marked templates and client JavaScript, designed to plug into any Perl web stack. It does not do template rendering itself but provides the runtime API the compiled templates call at render time and delegates environment-specific tasks such as JSON marshalling, raw-string handling, JSX children materialisation, and named-template rendering to a pluggable backend. That lets you drive different template engines and frameworks from the same runtime, with ready-made backends for Text::Xslate and Mojolicious and a core that only depends on Perl core modules. If you need to serve compiler-produced JSX/TSX templates from a Perl app and want to keep rendering decoupled from your framework, BarefootJS gives you a lightweight, backend-agnostic way to do that, and the project shows frequent releases and active maintenance.
Perl logo

Crypt-JWS

Release | 15 Aug 2026 05:50 AM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 85.9%Fail 1.0%N/A 8.1%Unknown 5.1%
JSON Web Signatures over OpenSSL's libcrypto
Crypt::JWS is a Perl module for creating and validating JSON Web Signatures (JWS) using OpenSSL's libcrypto, letting you produce compact JWS tokens and verify them against RSA, ECDSA, or HMAC algorithms (RS256/384/512, ES256/384/512, HS256/384/512) while supporting both OpenSSL 1.1 and 3.x. It provides simple high-level functions to sign and verify tokens, a peek function to inspect an untrusted header for routing, and helper primitives for base64url, SHA and HMAC digests, constant-time equality checks, and cryptographic random bytes. Verification is deliberately strict and privacy-preserving, returning only the payload or undef on any failure and requiring an allowlist of permitted algorithms to avoid algorithm confusion. Keys and thumbprints are managed via the companion Crypt::JWS::Key module and verify can accept a key callback for JWKS-style routing. For C/XS consumers the distribution also exports a stable C ABI so other modules can perform JWS operations in native code for high-performance or embedded use cases. Use Crypt::JWS if you need a straightforward, OpenSSL-backed JWS implementation in Perl or want to embed JWS signing and verification into XS extensions.
Perl logo

Affix

Release | 15 Aug 2026 02:50 AM | Author: SANKO | Version: v1.2.4
Upvotes: 5 | CPAN Testers: Pass 100.0%
A Foreign Function Interface eXtension
Affix is a high-performance Foreign Function Interface for Perl that lets you call native libraries and functions from C, Rust, Zig, C++, Go, Fortran and more without writing XS or compiling glue code, using JIT-compiled trampolines to achieve near-native call speed. It provides a rich, C-like type system for primitives, structs, unions, enums, SIMD vectors and pointers, zero-copy “live” views that map C memory to ordinary Perl hashes and arrays, and convenient APIs for binding functions, creating callbacks, allocating and casting memory, and pinning Perl scalars to C globals. Affix handles cross-platform library discovery for Unix, macOS and Windows, supports variadic functions and filehandle/Socket interoperability, and ships companion tools to generate bindings and build polyglot shared libraries. If you need to integrate high-performance native code into Perl or manipulate C data structures directly, Affix gives you the tools and safety rails to do it cleanly. The recent v1.2.4 release focused on stability and correctness, plugging several memory-leak and lifetime issues around casts and aggregate pins and improving safety for bitfields, wide strings and cross-architecture calling on ARM64 and other platforms.
Perl logo

Stats-LikeR

Release | 15 Aug 2026 01:18 AM | Author: DCON | Version: 0.298
CPAN Testers: Pass 98.0%N/A 1.0%Unknown 1.0%
Get basic statistical functions, like in R, but with Perl using XS for performance
Stats::LikeR is a high-performance Perl toolkit that brings many of R's convenient statistical routines and data-frame style helpers into Perl, implemented mostly in XS so common operations run fast. It covers tidy-data reshaping and querying (agg, group_by, melt, pivot_table, concat/rbind, merge, join, select/drop columns, assign, filter), numeric summaries and transforms (mean, median, quantile, rank, scale, interpolate, fillna/ffill/bfill), a wide suite of statistical tests and estimators (t test, wilcoxon, chi-square, fisher, anova/aov, oneway_test, kruskal/dunn, binomial tests, correlations, ROC/AUC/DeLong, BEDROC), regression and modeling (lm, glm with Poisson and negative binomial, coxph, survfit, logrank), and convenient table I/O (read_table, write_table) while accepting multiple common frame shapes (array-of-arrays, array-of-hashes, hash-of-arrays, hash-of-hashes). The API is aimed at people who like R idioms but need to stay in Perl, and many routines are numerically validated against R and SciPy so you get both familiar behavior and careful tail/precision handling. Recent maintenance releases focused on correctness and robustness, with fixes that bring chisq_test into bit-for-bit agreement with R 4.6.1 and further bug fixes and XS improvements in versions 0.296 and 0.297, so the module is a good choice if you need fast, R-like statistics inside Perl.
Perl logo

Geo-Coder-Free

Release | 15 Aug 2026 12:26 AM | Author: NHORNE | Version: 0.43
Upvotes: 3 | CPAN Testers: Pass 50.0%N/A 50.0%
Geocoding using free, locally-hosted databases
Geo::Coder::Free is a Perl module that lets you run geocoding locally by assembling a SQLite database from free data sources like OpenAddresses, Who's On First, MaxMind and GeoNames and then converting street addresses into latitude and longitude from Perl code or the command line. It includes helpers for common address formats, a sample CGI web front end, and configuration via environment variables so you can customize which datasets to use and optionally store data in MariaDB or Redis. The trade off is upfront work to download and import large datasets and to install tools such as App::csv2sqlite, and some features are incomplete: reverse geocoding is not fully implemented and coverage has limits (MaxMind provides only cities, OpenAddresses is not global, and a few parsing edge cases and occasional lookup failures are documented). If you want a self-hosted, open-data geocoder and can accept the setup effort, this module provides a practical, code-friendly way to avoid paid or rate-limited online services.
Perl logo

Langertha-Knarr

Release | 15 Aug 2026 12:15 AM | Author: GETTY | Version: 1.101
CPAN Testers: Pass 90.9%Fail 9.1%
Universal LLM hub — proxy, server, and translator across OpenAI/Anthropic/Ollama/A2A/ACP/AG-UI
Langertha::Knarr is a Perl-based, protocol-bridging LLM hub that exposes many kinds of backends to standard clients by speaking the wire protocols used by OpenAI, Anthropic, Ollama and agent ecosystems such as A2A, ACP and AG-UI. It can run as a standalone async server or in Docker or PSGI, supports native token-by-token streaming, and uses a pluggable handler model so you can route requests to local engines, per-session agents, raw passthrough proxies or remote agent clients while adding decorators for tracing and JSONL request logging. Knarr normalizes handler results into a single response shape, preserves tool calls and usage data, supports optional API-key auth and discovery routes, and is a good fit when you need to present a common OpenAI-style or Anthropic-style interface for a variety of engine providers or to bridge different agent ecosystems. The recent 1.101 release fixes a crash that could occur when engines returned usage metadata and a separate Langfuse serialization error that could turn completed upstream calls into 500s, and it also refreshed model defaults and expanded environment-driven engine detection and documentation.
Perl logo

SSVC

Release | 14 Aug 2026 10:57 PM | Author: GDT | Version: 1.01
CPAN Testers: Pass 94.8%N/A 5.2%
Perl extension for SSVC (Stakeholder-Specific Vulnerability Categorization)
SSVC is a Perl implementation of the Stakeholder-Specific Vulnerability Categorization framework that helps teams prioritize software vulnerabilities based on the needs of different stakeholders. The module provides ready-made methodology implementations such as CISA, Deployer, Supplier and coordinator variants, lets you create SSVC objects with decision-point values, and returns a recommended action via a simple decision method. It supports parsing and emitting the compact SSVCv2 vector string for the CISA methodology and can convert SSVC objects to JSON for interoperability with other tools. The API also includes introspection helpers so tools can list available methodologies or query decision point definitions, and you can register your own custom methodology class if you need to extend the system. The recent 1.01 release fixes a timestamp issue in to_vector_string and adds a simple example CVE-to-SSVC calculator to help get started.
Perl logo

Punk-GraphQL

Release | 14 Aug 2026 08:17 PM | Author: LNATION | Version: 0.01
CPAN Testers: Pass 74.5%N/A 25.5%
GraphQL endpoints for Punk applications
Punk::GraphQL adds a GraphQL-over-HTTP endpoint to Punk applications so you can expose a GraphQL API with minimal wiring. It hooks into Punk as a plugin and uses GraphQL::Houtou for parsing and execution, giving native-VM performance. You declare a graphql route with a schema file and supply resolver mappings that point to controller classes or specific controller methods, plus an optional context builder and guard for authorization, and you can enable GraphiQL for interactive queries. Pick this module when you want to serve GraphQL from a Punk app and map fields to existing controllers while leveraging a fast, XS-backed execution engine.
Perl logo

Protocol-Sys-Virt

Release | 14 Aug 2026 07:59 PM | Author: EHUELS | Version: v12.6.1
Upvotes: 2 | CPAN Testers: Pass 82.8%N/A 17.2%
Transport independent implementation of the remote LibVirt protocol
Protocol::Sys::Virt implements the LibVirt RPC protocol in Perl and provides the low-level message serializers, deserializers and transport primitives you need to build LibVirt-compatible clients and tooling that do not rely on the blocking Sys::Virt API. It is aimed at people who want a truly asynchronous way to talk to libvirt from Perl and supplies URI parsing, stream handling and helpers for typed parameters so you can integrate with event loops or Future/async frameworks. The module follows libvirt release tags to keep protocol mappings current and is best used as a building block for non-blocking clients rather than as a turnkey server implementation. Recent updates track libvirt v12.6.0 and fix a test-suite failure on older Perl versions while adding support for an 'argv' URI query parameter and new domain announce interface (de)serializers.
Perl logo

Log-Log4perl

Release | 14 Aug 2026 06:03 PM | Author: MSCHILLI | Version: 1.58
Upvotes: 110 | CPAN Testers: Pass 99.3%Fail 0.7%
Log4j implementation for Perl
Log::Log4perl is a mature, full featured logging framework for Perl that brings the familiar power of Java's log4j to Perl applications. It provides category-based loggers and standard severity levels so you can turn logging on or off for specific components without changing code, route messages to multiple destinations via flexible appenders (file, screen, DBI and many Log::Dispatch options), and format output with powerful pattern layouts. Configuration can be done in external files or in code and can even be reloaded at runtime with init_and_watch, while easy_init and stealth loggers give a one line setup for quick scripts. Advanced features include nested and mapped diagnostic contexts (NDC and MDC), message filters, runtime level adjustments and performance optimizations for suppressed messages, with safe-eval options for embedded Perl in configs if you need them. The module is actively maintained and the latest release includes a fix for Catalyst integration so shared Catalyst processes no longer lose log messages.
Perl logo

Lingua-TokiPona-Word

Release | 14 Aug 2026 05:34 PM | Author: LION | Version: v0.03
CPAN Testers: Pass 86.6%N/A 13.4%
Module to interact with the words of Toki Pona
Lingua::TokiPona::Word is a small Perl module that models the limited vocabulary of the constructed language Toki Pona as normalized, unique word objects so you can work with words rather than raw strings. It provides multiple constructors (from strings, other objects, ISE values or Under-ConScript Unicode Registry code points), string and UCSUR accessors, equality and ordering operations, and a known() method to list all words or stopwords, with synonyms kept distinct. The module keeps the full lexicon in memory so you always get the single canonical instance for a given word, which makes it handy for language tools, indexing, simple NLP tasks or storing multilingual identifiers in databases. The latest release added more words, a natural_language accessor, interoperability with Lingua::famibeib::Word and an implementation of the Lingua::Generic::Interface::Word interface.