Skip to content
List of Popular Perl6 modules
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
META6.json
README.md

README.md

Task::Popular

Introduction
Module Listing
Date of Compilation
Problems
Updates and Algorithm

Introduction

The developers of Perl6 decided that the implementation of the language (eg. Rakudo) would be available with a bare minimum of "core" modules. Some modules are essential, such as Test, or the module manager (previously panda, currently zef).

The intention is for users / user groups to contribute distributions that meet a specific topic area. Rakudo itself is available in a package called Rakudo Star with a minimal number of modules.

This distribution list takes another, data driven, approach.

Modules are intended to provide common functionality, and so are used or cited by other modules in the Ecosystem. A set of modules that are frequently used can be fairly safely assumed will be regularly maintained. Failures in these modules will affect many other modules, and there will be pressure to get them fixed.

This list uses Citation Indices to identify the 30 modules most recursively popular modules in the Ecosystem.

Modules in this distribution

Module Name Recursive Citation Index Module Description
JSON::Fast 37.87 OOps description not found, please file issue at github repository of p6-task-popular
URI 31.56 A URI implementation using Perl 6 grammars to implement RFC 3986 BNF
MIME::Base64 28.9 Encoding and decoding Base64 ASCII strings
File::Directory::Tree 26.58 Port of File::Path::Tiny - create and delete directory trees
File::Temp 25.91 Create temporary files & directories
HTTP::Status 23.59 Get the text message associated with an HTTP status code
JSON::Tiny 18.94 OOps description not found, please file issue at github repository of p6-task-popular
OpenSSL 17.94 OpenSSL bindings
JSON::Name 16.28 Provides a trait to store an alternative JSON Name
Encode 15.61 Character encodings in Perl 6
DateTime::Parse 15.28 DateTime parser
JSON::Unmarshal 15.28 Turn JSON into objects
HTTP::UserAgent 14.95 Web user agent
JSON::Marshal 14.95 Simple serialisation of objects to JSON
Terminal::ANSIColor 14.95 Colorize terminal output
JSON::Class 14.29 role to provide simple serialisation/deserialisation of objects to/from JSON
HTML::Escape 12.96 Utility of HTML escaping
LibraryMake 11.96 An attempt to simplify native compilation
META6 11.63 Work with Perl 6 META files
File::Find 11.3 File::Find for Perl 6
Digest 10.96 Pure perl6 implementation of digest algorigthms.
XML 10.63 A full-featured, pure-perl XML library (parsing, manipulation, emitting, queries, etc.)
Test::META 10.3 Test a distributions META file
IO::Socket::SSL 9.97 IO::Socket::SSL for Perl 6 using OpenSSL
PSGI 9.3 A PSGI helper library.
URI::Encode 8.97 Encode and decode URIs according to RFC 3986
File::Which 8.31 Cross platform Perl 6 executable path finder (aka which on UNIX)
Digest::HMAC 7.97 Generic HMAC implementation
HTTP::Easy 7.31 HTTP servers made easy, including PSGI
JSON::Pretty 7.31 A minimal JSON (de)serializer that produces easily readable JSON

Date of Compilation

This list was compiled on 2018-01-01.

Problems

Inevitably for commonly needed functionality, there may be multiple modules that provide the same functionality. An example is JSON::Tiny and JSON::Fast. J/Fast was designed to be a drop-in replacement for J/Tiny, which was first written to demonstrate how to use Perl6 and not as a workhorse module. However, for some reason J/Tiny has a lot of support, although J/Fast is taking over (see the ModuleCitation page to trace the historical change).

So the Task::Popular list may have alternate modules for the same functionality. But for a newcomer to the Ecosystem that might in fact be interesting as it provides a choice, and the opportunity to compare coding styles.

Updates and Algorithm

The aim is to update the list regularly (eg. monthly).

The algorithm for generating the distribution list is implemented as a method in the ModuleCitation class.

You can’t perform that action at this time.