PAGI Distribution Split

📰 Dev.to · John Napiorkowski

The news: PAGI is now three CPAN distributions instead of one. PAGI-Server — the reference...

Published 27 Jun 2026

Full Article

Title: PAGI Distribution Split

URL Source: https://dev.to/jjn1056/pagi-distribution-split-1kdo

Published Time: 2026-06-27T01:26:47Z

Markdown Content:
[Skip to content](https://dev.to/jjn1056/pagi-distribution-split-1kdo#main-content)

[![Image 1: DEV Community](https://media2.dev.to/dynamic/image/quality=100/https://dev-to-uploads.s3.amazonaws.com/uploads/logos/resized_logo_UQww2soKuUsjaOGNB38o.png)](https://dev.to/)

[Powered by Algolia](https://www.algolia.com/developers/?utm_source=devto&utm_medium=referral)

[Log in](https://dev.to/enter?signup_subforem=1)[Create account](https://dev.to/enter?signup_subforem=1&state=new-user)

## DEV Community

![Image 2](https://assets.dev.to/assets/heart-plus-active-9ea3b22f2bc311281db911d416166c5f430636e76b15cd5df6b3b841d830eefa.svg)0 Add reaction

![Image 3](https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg)0 Like ![Image 4](https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg)0 Unicorn ![Image 5](https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg)0 Exploding Head ![Image 6](https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg)0 Raised Hands ![Image 7](https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg)0 Fire

0 Jump to Comments 0 Save Boost

Copy link

Copied to Clipboard

[Share to X](https://twitter.com/intent/tweet?text=%22PAGI%20Distribution%20Split%22%20by%20John%20Napiorkowski%20%23DEVCommunity%20https%3A%2F%2Fdev.to%2Fjjn1056%2Fpagi-distribution-split-1kdo)[Share to LinkedIn](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fdev.to%2Fjjn1056%2Fpagi-distribution-split-1kdo&title=PAGI%20Distribution%20Split&summary=The%20news%3A%20PAGI%20is%20now%20three%20CPAN%20distributions%20instead%20of%20one.%20%20%20%20PAGI-Server%20%E2%80%94%20the%20reference...&source=DEV%20Community)[Share to Facebook](https://www.facebook.com/sharer.php?u=https%3A%2F%2Fdev.to%2Fjjn1056%2Fpagi-distribution-split-1kdo)[Share to Mastodon](https://s2f.kytta.dev/?text=https%3A%2F%2Fdev.to%2Fjjn1056%2Fpagi-distribution-split-1kdo)

[Share Post via...](https://dev.to/jjn1056/pagi-distribution-split-1kdo#)[Report Abuse](https://dev.to/report-abuse)

[![Image 8: John Napiorkowski](https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1119943%2F3492ab20-1496-43e6-a9b2-33f6a5adccae.jpeg)](https://dev.to/jjn1056)

[John Napiorkowski](https://dev.to/jjn1056)
Posted on Jun 27

# PAGI Distribution Split

[#perl](https://dev.to/t/perl)[#webdev](https://dev.to/t/webdev)[#pagi](https://dev.to/t/pagi)

The news: PAGI is now **three CPAN distributions** instead of one.

* **[PAGI-Server](https://metacpan.org/dist/PAGI-Server)** — the reference server
* **[PAGI-Tools](https://metacpan.org/dist/PAGI-Tools)** — the application toolkit
* **[PAGI](https://metacpan.org/dist/PAGI)** — the specification

## [](https://dev.to/jjn1056/pagi-distribution-split-1kdo#install-what-you-actually-run) Install what you actually run

In practice, almost everyone starts the same way: `cpanm PAGI::Server` to get a

server that runs PAGI apps, and probably `PAGI::Tools` for the request/response

helpers, router, and middleware you'll want while building one. That's the

common case, and the split is built around it — **you install the pieces you

use** instead of swallowing one monolith that bundled the server, the toolkit,

and the spec together.

Underneath both sits the **specification**: a small, deliberately stable

contract — the shape of `$scope`, `$receive`, `$send`, and the event types —

that the server and the toolkit both implement. Keeping it in its own

distribution is the real reas
Read full article → ← Back to Reads