The Raku Ecosystem, Working

One page per module from raku.land — installed, tested and run under Raku++, with examples you can copy straight into a file.

A module is on this site once Raku++ can do four things with it: parse its sources, install it with rakupp install, run the distribution's own test suite, and run the examples on its page. Every example below is executed under Raku++ 3.28.0 and under Rakudo 2026.08 as the build runs, twice on each, and the build fails if an output moves. What you copy is what ran.

Every page here is written for this site — what the module is for, what its API actually looks like, and the one thing worth knowing before you reach for it. None of it is copied from the distribution's own documentation.

The whole Raku ecosystem — all 2,524 distributions and how each ran →

ModuleTopicVersionStateExamples
Abbreviations
Every leading substring that identifies one word out of a set and no other — the unambiguous prefixes a command-line tool lets you type instead of the whole subcommand.
text2.2.3Works2
Acme::Scrub
Hide a program inside its own source file as zero-width characters, and decode and run it on every later invocation.
curiosities0.2.1Works2
Algorithm::BinaryIndexedTree
A Fenwick tree — an array of cumulative counts supporting a bucket increment and a prefix sum, each in logarithmic time.
data structures0.0.8Works4
Algorithm::Elo
One Elo update — two integer ratings and who won, in; two new integer ratings, out — on the standard logistic curve with a fixed K of 32.
algorithms0.1.1Works3
Algorithm::KDimensionalTree
A static k-d tree over numeric vectors, answering k-nearest-neighbour and radius queries, with a pluggable distance function.
data structures0.1.2Divergent3
Algorithm::LCS
The longest common subsequence of two sequences — the subsequence itself, not its length — with the common prefix and suffix stripped before the dynamic-programming table is built.
algorithms0.1.1Works3
Algorithm::Manacher
Manacher's linear scan for palindromic substrings — every maximal palindrome and its position, computed once at construction.
algorithms0.0.1Works3
Algorithm::SetUnion
A disjoint-set forest over the integers 0 ..^ size, with union by subtree size and full path compression, and the node array exposed.
algorithms0.0.1Works4
Algorithm::Soundex
The American Soundex code for a name — an initial letter followed by digits for the consonant groups that follow it.
algorithms0.2Works3
Algorithm::TernarySearchTree
A ternary search tree over whole strings — one character per level, a binary search among the alternatives — with exact lookup and a fixed-length wildcard match.
data structures0.0.5Works4
Algorithm::ZobristHashing
Zobrist hashing — a random value per (position, piece) pair, XORed together — so a one-square change costs two more XORs rather than a rehash.
algorithms0.0.6Works4
App::Rakus
A static HTTP file server as one installable command, on nothing but IO::Socket::INET — with the routing exposed as a pure function you can test without opening a port.
command line0.0.2Works6
ASCII::To::Uni
A source-rewriting filter that replaces about forty-five ASCII spellings with the Unicode characters Raku also accepts.
source tools0.1.1Divergent3
Astro::Sunrise
The local clock times at which the sun's centre crosses a chosen altitude on a given date at a given point on the globe.
astronomy0.0.4Works5
Automata::Cellular
Run Wolfram's elementary one-dimensional cellular automata — the 256 three-neighbour rules — on a wrap-around row seeded with a single live cell.
simulation0.2.3Works4
AVL-Tree
A height-balanced binary search tree holding one key per node, with an optional payload, rebalancing by rotation on insert and delete.
data structures0.0.2Partial4
Base64
Base64 in pure Raku with the two alphabets that matter — standard and URL-safe — from the author of zef, with no dependencies to drag in.
data format0.1.0Works2
Base64::Native
Base64 over a bundled C codec, doing the whole buffer in one call and working in Blobs throughout, with the URL-safe alphabet as a flag.
encoding0.0.10Works4
Cache::Async
A thread-safe read-through cache built around a producer closure — every get returns a Promise, and concurrent requests for one key collapse onto a single producer call.
caching0.3.4Works4
Calculator
A two-number arithmetic object — construct it with an x and a y, then ask for their sum, difference, product or quotient.
arithmetic0.0.1Divergent3
Chess
Two chess notation grammars — a position in FEN and a game score in PGN — plus a terminal board printer in Unicode chess glyphs.
games0.2.4Works4
Clean
A fifteen-line destructor convention — mark a class with a role, implement clean, and call a sub that runs your block and then cleans up.
resources*Partial3
Color
A color as an object — construct it from hex, RGB, HSL, HSV or CMYK, convert between them all, and adjust it with lighten, darken, saturate, invert and arithmetic.
graphics1.004001Works3
Color::Names
Named colours as data — CSS3, Crayola, X11 and more, each name paired with its RGB triple, plus a substring search and a nearest-match by distance.
graphics2.0.0Works1
Color::Scheme
Rotate a Color's hue by a list of degree offsets and return the resulting colours, with seventeen named offset sets baked in.
colour1.001003Works4
Compress::LZString
A pure-Raku port of the JavaScript lz-string dictionary coder, with five transport encodings of the same bit stream.
compression0.0.1Works4
Compress::Zlib::Raw
The zlib C library bound function for function — the one-shot helpers, the streaming deflate and inflate state machine, and the checksums — with no Raku wrapper over any of it.
encoding1.0.1Works2
Concurrent::Channelify
Hand a list to a start block that pushes every element into a Channel, so a producing pipeline overlaps with a consuming one.
concurrency0.1.0Divergent3
Config
A settings object with a template of allowed keys, dotted paths into nested values, and readers for hashes, files, environment variables and XDG directories — where every change hands back a new Config.
configuration3.0.4Works2
Config::Clever
Layered JSON configuration by convention — a default file, an environment file and a machine-local override, merged in that order from one directory.
configuration1.0.0Works2
Config::INI
A grammar for the classic key = value / [section] file, plus a writer that walks a hash back out, giving a two-level hash of strings.
configuration1.2Works4
Crypt::Random
Random bytes and integers from the operating system's cryptographic source instead of the language's PRNG — a buffer, an integer, an unbiased draw below a bound, and a version-4 UUID assembled from them.
crypto0.4.1Works2
CSV::Parser
A CSV reader that works from an open file handle a line at a time — quoted fields, a header row that becomes the keys, and the separators and quote characters as options — for files too big to slurp.
data format0.1.4Works1
Data::Dump
One sub, Dump, that renders any structure — nested data, objects, attributes and all — as indented, optionally colored text a human can actually read.
debugging0.0.18Works1
Data::Generators
Random words, strings, numbers, dates, pet names, job titles — and whole tabular datasets. The fastest way to have data before you have data.
data generation0.1.11Works9
Data::Transformers
Numeric array reshaping — a running-total accumulator, a linear range remapper, and array padding and centring helpers — in three separately used units.
data0.0.2Works4
Data::TypeSystem
Says what shape a data structure is — a vector of Ints, a tuple, a list of records, a hash of vectors — in one call, so code that accepts "data" can check it was handed a table before treating it as one.
data0.1.8Works2
Date::Calendar::Bahai
Convert between Gregorian dates and the Baháʼí calendar in both an arithmetic and an astronomical reckoning, with the cyclical structure exposed alongside year, month and day.
calendars0.1.0Works4
Date::Calendar::Hijri
Convert between Gregorian dates and the arithmetic Hijri calendar — a computed thirty-year cycle with no moon sighting — with day names and strftime.
calendars0.1.0Works4
Date::Calendar::Persian
Convert between Gregorian dates and the Persian solar calendar, whose year begins at the spring equinox, in an arithmetic and an astronomical reckoning.
calendars0.1.0Works4
Date::Calendar::Strftime
The C library's `strftime` as a role — `%Y-%m-%d`, `%j`, `%V`, widths and flags — mixed into a core Date or into any of the author's Date::Calendar classes, so one format string works across calendars.
time0.1.1Works1
Date::Christian::Advent
The date of the First Sunday of Advent for a year, computed three independent ways — which all agree.
calendars0.0.2Works3
Date::Easter
Gregorian Easter Sunday from a year, and the six moveable feasts anchored to it, as Date::Event objects keyed by the date each falls on.
calendars0.0.5Works4
Date::Event
One record type for "something that happens on a date" — a name, a category from a sixteen-value enumeration, the date, the observed date, and an identifier scoped to a set.
time0.0.12Works2
Date::Names
The names of the months and weekdays in fourteen languages — full, abbreviated, in the case and truncation you ask for — and the reverse lookup from a name to its number.
time2.3.2Works1
Date::Utils
The arithmetic a month-grid calendar needs — which weekday column the first falls in, how many rows the month takes, and where "third Monday in January" actually lands.
time0.7.0Works3
DateTime::Format
strftime for Raku's DateTime — the % patterns everyone knows, with month and day names in six languages.
time0.1.5Works2
DateTime::Format::LikeGo
Write a datetime layout the way Go does — by spelling out a reference instant rather than using percent codes — and render a DateTime with it.
time0.0.2Works3
DateTime::Grammar
A DateTime from a dozen conventional date shapes — ISO 8601, the three HTTP formats, slashed numeric dates and spelled-out months — as a grammar factored into a reusable role.
time0.1.3Divergent2
DateTime::Math
Conversions between a number and a duration unit, plus operators that add or subtract a plain number of seconds from a DateTime.
time0.6.2Works4
DateTime::Parse
A DateTime from the date strings the web writes — RFC 1123, the older RFC 850, C's `asctime`, and ISO 8601 — through one constructor that tries the grammars in turn.
time0.9.3Works1
DBIish
One interface to SQLite, PostgreSQL, MySQL and Oracle — connect by driver name, send SQL with placeholders, and get rows back as lists or hashes with the database's types already turned into Raku's.
database0.6.8Works2
Die
Restore Perl's convention that a die message ending in a newline is a finished message for the user — printed to stderr, followed by exit 1.
error handling1.1Works2
Digest
MD5, SHA-1, SHA-2, SHA-3, RIPEMD-160 and HMAC written in Raku itself — one sub per algorithm, a Blob in and a Blob out, and no C to compile, at the speed that implies.
crypto1.1.0Works2
Digest::FNV
The Fowler–Noll–Vo non-cryptographic hash in its three historical variants, at any of six widths from 32 to 1024 bits.
hashing0.1.1Works3
Digest::HMAC
Keyed message authentication (RFC 2104) over any digest you hand it — verify a webhook signature or sign an API request in one line, in pure Raku.
crypto1.0.7Works3
Digest::MD5
MD5 in forty-three lines of Raku — one sub, a message in and sixteen bytes out — for the content addresses and legacy checksums that still ask for it.
crypto1.1.0Works2
Digest::SHA1::Native
SHA-1 through a C implementation compiled at install time — two subs, the raw digest and the hex string, for the checksum and lookup-key uses where SHA-1 is still what the other side expects.
crypto1.0.1Works1
Digest::SHA256::Native
SHA-256 through a C implementation rather than a Raku one — two subs, one returning the raw digest and one the hex string, for when hashing is on a path that runs often enough for the speed to show.
crypto1.0.2Works1
Doublephone
Double Metaphone over a bundled C implementation — one call turns a word into two four-letter phonetic keys.
text comparison0.1.3Works3
Email::MessageID
Generate a value for a Message-ID header from a nanosecond timestamp, a short random run and the process id, attached to the machine's hostname.
email0.0.1Works3
Encode
Byte-to-text decoding for the legacy single-byte encodings the core does not carry — ISO-8859-2 and Windows-1251 above all — as one sub and three lookup tables.
encoding0.0.4Works2
Env::Dotenv
Read a .env file in the current directory and turn each line into a key and a value, either copied into the process environment or returned as a hash.
configuration0.0.6Divergent2
EuclideanRhythm
Spread a number of hits as evenly as the integers allow over a number of slots, using Bjorklund's construction, and hand the bar back as booleans.
music0.0.6Works3
File::Directory::Bubble
The list-building half of a recursive delete — every descendant in an order safe to remove in, and how far a deletion would cascade up the parent chain.
filesystem0.1Works4
File::Directory::Tree
mkdir -p, rm -r and "empty this directory" as three Raku subs — the whole-tree operations the core deliberately leaves out.
files0.2Works3
File::Find
Walk a directory tree as a lazy sequence, filtered by name, type or path, without writing the recursion yourself.
files0.2.5Works3
File::Path::Resolve
A path string turned into an absolute IO::Path, with a leading tilde expanded to the home directory first and every `..` collapsed.
files0.0.1Works2
File::Presence
Four compound questions about a path — does it exist and is it readable and is it a file — answered as one boolean each, with no exception when the path is not there.
files0.2.0Works2
File::Stat
The raw `stat(2)` fields an IO::Path does not expose — inode, device, mode bits, link count, block counts, owner and group — as a live query against a path.
files1.0.3Works3
File::Temp
A temporary file or directory with a name nobody can guess, created safely, and removed for you when the program ends.
files0.0.12Works4
File::Which
The shell's which, as a function — find the full path of an executable on PATH, on every platform, before you try to run it.
files1.0.4Works2
File::Zip
Read a zip archive by shelling out to the system unzip — validate the path, list the members, extract to a directory.
archives0.1.2Works3
Finance::CompoundInterest
Four time-value-of-money formulas — future value of a lump sum or a payment stream, and the two inverses that solve for periods or payment size.
finance0.1.0Works3
Fortune
Read and write the Unix fortune file format — records separated by a delimiter line, with an optional binary index — and ship a Slackware database so it works out of the box.
text0.1.0Works3
Game::Stats
Descriptive statistics and discrete probability as five small classes — an append-only sample, its mean and variance, covariance and correlation, and a Bayes helper.
statistics0.2.11Divergent3
Game::Sudoku
A 9x9 grid held as an 81-character string, answering validity, completeness and per-cell candidates, with a separate solver unit.
games1.1.4Works4
Games::Maze
Carve a rectangular maze by recursive backtracking and render it as ASCII, one header line plus one line per row.
games0.0.1Works4
Geo::Ellipsoid
Solve the two classical geodesy problems on an ellipsoidal Earth — distance and bearing between two points, and the point a distance and bearing away — over nineteen named reference ellipsoids.
geodesy1.0.1Works4
Geo::Geometry
The OGC simple-feature shapes as Raku classes — points, lines, rings, polygons and the collections — each able to serialise itself to standard binary WKB.
graphics0.1.3Works2
Geo::WellKnownBinary
Decode OGC Well-Known Binary — the packed byte format PostGIS keeps geometry in — into Geo::Geometry objects, in either byte order and every Z/M/ZM variant.
geospatial0.1.6Divergent4
Getopt::Long
Command-line parsing in the GNU style — long and short options, negatable flags, typed values, repeats — declared either as patterns in the Perl tradition or by the signature of the sub you want called.
command line0.4.2Divergent2
Getopt::Long::Grammar
Parse a command line held in a single string — command word, options and positional arguments — into a Match or a plain hash, without ever touching @*ARGS.
grammars0.0.2Works4
Git::Status
Run git status in a directory and present the porcelain output as seven typed lists plus a clean flag, read once at construction.
git0.0.4Partial3
Glob::Grammar
A grammar for shell wildcard syntax, with an actions class that translates a glob into the source text of a Raku regex.
text0.0.2Divergent2
Grammar::DiceRolls
A grammar for tabletop dice notation — 3d6, 2d6+1d4-1 — with two action classes, one returning a total and one every individual die.
grammars0.3.1Works4
Grammar::TodoTxt
A grammar for the todo.txt task format — completion marker, priority, two dates, and a description in which projects, contexts and key:value labels are picked out from ordinary words.
grammars0.1.0Works3
Gray::Code::RBC
Convert between integers and reflected binary Gray code, where consecutive values differ by exactly one bit, at arbitrary precision.
encoding0.0.4Works4
Haikunator
Generate a random adjective-noun-number label in the Heroku style — a throwaway name a person can read aloud and remember.
identifiers0.1.0Works3
Hash::Merge
Deep-merges hashes into a new one — nested hashes combined key by key, arrays appended rather than replaced, and the later argument winning every collision.
data2.0.0Works2
Hash::Ordered
A hash whose keys come back in the order they were first assigned, through the ordinary hash syntax — a container trait rather than a new type to learn.
data0.0.9Works2
Highlight::Terminal
A lookup table from Raku syntax-category names to SGR colour parameters, plus the two methods that wrap text in the matching escape.
terminal0.0.2Works3
Holidays::US::Federal
The eleven US federal holidays for a year, with the date each is observed when the holiday falls on a weekend.
calendars0.0.5Works4
HTML::Escape
One exported sub that turns the five characters HTML cares about into entities — the smallest correct answer to "I am about to interpolate a string into markup".
web0.0.1Works1
HTML::Lazy
A lazy HTML builder where every constructor returns a thunk and nothing is rendered until the outermost one is passed to render.
markup0.0.1Partial4
HTTP::HPACK
HTTP/2 header compression — the static and dynamic index tables, the integer and string primitives, and the Huffman code — as an encoder and a decoder you pair per connection.
web1.0.3Works2
HTTP::ParseParams
Parse an HTTP cookie string or an x-www-form-urlencoded body into a hash, with the dialect chosen by a flag.
http1.0.0Partial4
HTTP::Status
Every registered HTTP status code as an object that knows its title, its class, its RFC and where it came from — plus the one-line predicates for "is this an error?".
web0.0.5Works3
HTTP::Tiny
An HTTP/1.1 client with no dependencies — one object, one method per verb, a hash back with the status, the headers and the body — for the program that has to fetch or post something and would rather not carry a framework to do it.
web0.2.6Works2
I18n::Simple
User-facing strings in flat YAML files, looked up by key with placeholders filled from named arguments — layered so a translation can be loaded over a base language.
language0.1.2Works2
IDNA::Punycode
The bootstring encoding behind internationalised domain names — one sub each way, turning Unicode text into an `xn--` label and back.
encoding1.0.1Works2
Image::Markup::Utilities
Turn an image file into a base64 data URI and wrap it in Markdown or HTML, so images can be embedded inline in notebooks and documents.
images0.1.2Works3
Intl::LanguageTaggish
The interface every language-tag type is expected to satisfy — one role with four required methods — so unrelated internationalisation libraries can accept each other's tags.
language0.2Works2
IO::Glob
Shell wildcards in Raku — `*.txt`, `src/**/*.rakumod`, `{one,two}` — as a matcher for strings and paths and as a way to list a directory, with the shell's grammar rather than a regex to write.
files0.9.0Works1
IO::Path::Dirstack
A shell-style directory stack — pushd changes the working directory and remembers where you were, popd goes back.
filesystem0.1.1Works3
IO::Path::XDG
The freedesktop.org base directories as six subs — config, data and cache homes, their search lists, and the runtime directory — with the specification's defaults filled in.
files0.2.0Divergent2
IRC::TextColor
IRC's in-band colour codes with names, plus a converter that turns ANSI terminal escapes into the IRC equivalents so console output can be relayed to a channel.
terminal0.4.1Works2
JSON::Class
A role that gives any class a `to-json` and a `from-json` — public attributes out, typed objects back in, nested classes and typed arrays included — built on JSON::Marshal and JSON::Unmarshal.
data format0.0.21Works2
JSON::Fast
JSON in, Raku data out, and back again. Two exported subs, a handful of adverbs, and the numbers come back typed the way you would have typed them.
data format0.20.1Works9
JSON::JWT
JSON Web Tokens signed and verified — unsigned, HMAC-SHA256 with a shared secret, or RSA-SHA256 with a PEM key — where decoding and verifying are the same call.
crypto1.1.2Works2
JSON::Marshal
An object's public attributes turned into JSON, with four traits for the per-attribute decisions — skip it, skip it when empty, run it through a converter, or publish only what is marked.
data format0.0.25Works3
JSON::Name
One attribute trait that records a different JSON key for an attribute — for the `@type` and `created_at` spellings a Raku identifier cannot have.
data format0.0.7Works2
JSON::Native
JSON::Fast's interface with a native fast path — a C extension compiled at install time, or Raku++'s own codec — and JSON::Fast itself everywhere else. Same program, same answers, on both engines.
data format0.0.2Works6
JSON::OptIn
One empty marker role and the trait that applies it — the shared answer to "was this attribute deliberately made JSON-visible", so several serialisation modules can agree without depending on each other.
data format0.0.2Works2
JSON::Pretty
A `to-json` that formats for a human — one value per line, two spaces of indent, a space either side of the colon — imported over the one you already have.
data format0.1.1Works2
JSON::Pretty::Sorted
A pretty-printing JSON writer with a caller-supplied ordering hook threaded through the whole document.
json0.0.2Partial4
JSON::Tiny
The original Raku JSON module — two exported subs around a grammar small enough to read in one sitting, and clean enough to subclass when your "JSON" has comments in it.
data format1.0Works4
JSON::Unmarshal
JSON into typed objects — matching keys to public attributes, recursing into nested classes and typed arrays, and checking each value against the attribute's declared type.
data format0.18Works3
Lazy::Static
Wrap a block in a closure that runs it at most once, on first call, and hands every later caller — on any thread — the same value.
concurrency0.0.1Works3
LCS::All
Every longest common subsequence of two sequences, not just one, returned as lists of index pairs into the originals.
algorithms0.2.0Works3
LEB128
LEB128 variable-length integers, signed and unsigned — the format DWARF, WebAssembly and Protocol Buffers pack integers with — at arbitrary precision.
encoding1.0Works4
License::SPDX
The SPDX licence list as a bundled data table, looked up by identifier or walked in full, with each licence an object carrying its name, approval flags and reference URLs.
metadata3.28.0Works3
Lingua::Conjunction
Turn a list into a natural-language phrase — a, b, and c — with control over the conjunction, the Oxford comma, the separator and the language.
text1.3Works4
Lingua::EN::Syllable
Estimate how many syllables an English word has, by counting vowel groups and applying a list of corrective patterns.
text1.0.3Works4
Lingua::NumericWordForms
Numbers spelled out as words and read back again, across nineteen languages — with automatic detection of which language a spelled-out number is in.
language0.6.2Works3
Log
A log4j-shaped logger — five levels, a pattern string, a registry of named loggers, and the two context stores that let a request tag every line it causes.
debugging0.3.2Works2
Logger
The continuation of the Log distribution under a new name — the same levels, pattern and contexts, plus a settable pattern and a hook for the timestamp.
debugging0.4.6Works2
LZW::Revolunet
A port of a JavaScript LZW routine that replaces repeated substrings with single characters drawn from a private code space.
compression0.3.2Divergent3
Math::Curves
Two curve primitives for interpolation — a straight-line function and Bezier evaluation at a parameter for two, three or four control points.
maths0.0.1Divergent3
Math::DistanceFunctions
Ten ways to measure how far apart two numeric vectors are — Euclidean, Manhattan, Chebyshev, cosine, Canberra, Bray–Curtis, Hamming and the general p-norm — as plain subs over two lists.
maths0.1.4Works2
Math::DistanceFunctions::Edit
Edit distance with transpositions counted as one operation, done in C — how many single-character changes turn one string into another, for spelling suggestions and fuzzy matching.
text0.1.3Works3
Math::DistanceFunctions::Native
Vector distance and similarity primitives backed by a bundled C implementation — Euclidean, squared Euclidean, cosine, dot product and norm.
maths0.1.2Works3
Math::Nearest
Nearest-neighbour search over a point set — the k closest or everything inside a radius — with a k-d tree or an exhaustive scan behind one callable finder.
maths0.0.7Divergent3
Math::Random
Seedable pseudo-random generators as objects — a Mersenne Twister matching the reference implementation, and a linear congruential one with Java's constants.
maths0.1.3Divergent2
Math::SpecialFunctions
Gamma, factorial, binomial coefficients, Bernoulli numbers and the Euler–Mascheroni constant — exact integers and rationals where the answer is exact, floating point where it cannot be.
maths0.1.1Works2
META6
A distribution's META6.json as a typed object — name, version, provides, the four kinds of dependency — read from a string or a file and written back out, with every field the specification names as a method.
data format0.0.31Works1
Method::Also
An "is also" trait that gives one method several names — aliases for a friendlier API, or for the protocol hooks Raku itself looks up, with no forwarder methods to write.
language0.0.10Works2
MIME::Base64
Bytes to ASCII and back — the encoding behind Basic auth, data URIs, and every place binary has to travel through a text-only channel.
encoding1.2.5Works5
MIME::QuotedPrint
Quoted-printable encoding and decoding — bytes outside printable ASCII become =XX escapes — with a byte pair, a text pair, and the RFC 2047 header variant.
encoding1.0.0Works4
MIME::Types
The table from a file extension to a media type and back — `html` to `text/html`, `text/html` to its three extensions — as an object built from the list Apache ships, with nothing computed at all.
web0.3Works1
NativeHelpers::Array
Four subs that move data between a Raku Array or Buf and the CArray a C function wants — typed, sized and copied — so a NativeCall binding can hand a list to C and read one back without writing the loop each time.
native0.0.6Works1
Netstring
Bernstein's netstring framing — a decimal byte count, a colon, the payload, a comma — as two encoders and one socket reader.
encoding0.0.4Divergent4
Number::Bytes::Human
Convert byte counts to and from short human-readable strings — 1048576 to 1M and back — using binary magnitudes.
formatting0.0.4Partial4
OO::Monitors
A `monitor` declarator — a class whose every method call takes the object's own lock on the way in, so one thread at a time is inside it and the methods carry no locking code of their own.
concurrency1.1.7Works3
OpenSSL
The OpenSSL library through NativeCall — digests, symmetric ciphers, RSA, X.509 and the TLS socket that IO::Socket::SSL is built on — in nineteen units, of which most programs want two.
crypto0.2.9Works1
P5getgrnam
The POSIX group-database calls, shaped so the return value matches what Perl's built-ins of the same name hand back.
system0.0.10Works3
P5getnetbyname
The POSIX network-database calls, returning Perl's four-field record of name, aliases, address type and network number.
system0.0.9Works3
P5getpriority
Scheduling priority and process groups — getpriority, setpriority, getppid, getpgrp and setpgrp — bound directly, returning plain integers.
system0.0.8Works3
P5getprotobyname
The POSIX protocol-database calls, returning Perl's three-field record of name, aliases and IANA protocol number.
system0.0.7Works4
P5getpwnam
The POSIX password-database calls, reshaping the platform's struct passwd into the field order Perl's getpw built-ins use.
system0.0.11Works3
P5getservbyname
The POSIX service-database calls, shaped so the return value matches what Perl's built-ins of the same name hand back, with ports byte-swapped into host order for you.
system0.0.8Works5
P5localtime
Perl's `localtime` and `gmtime` — an epoch second broken into calendar fields, or formatted as the fixed-width C timestamp — for code being carried across from Perl.
time0.0.11Works2
P5opendir
Perl's directory-handle vocabulary — opendir, readdir, telldir, seekdir, rewinddir, closedir — over a snapshot of the names taken at open time.
filesystem0.0.10Works3
Package::Updates
Ask the host's system package manager which installed packages have newer versions available, as a hash of name to current and new.
system1.0.0Works2
Path::Finder
A composable file-tree walker — build an immutable rule out of predicates, hand it a directory, and get back the paths that match, with whole subtrees pruned rather than filtered.
files0.4.7Works2
PathTools
Five shell-flavoured filesystem helpers — list a tree, delete paths, create a directory chain, mint temporary paths — all Str in and Str out.
filesystem0.2.0Works3
Physics::Error
The measurement uncertainty attached to a physical quantity — the plus-or-minus — converting between absolute, relative and percentage forms.
science0.1.9Works3
Pod::Literate
A grammar that splits a Raku source file into alternating documentation and code chunks, handing back the matched substrings.
pod0.0.2Works3
Proc::Easy
One sub that wraps run, always capturing both output streams, and hands back the exit code, stderr and stdout together.
process0.0.2Divergent4
QueryOS
Identify the host operating system and split its version string into parts, so a program can branch on platform without parsing $*DISTRO by hand.
system0.1.2Partial3
Result
A Rust-style Result wrapper — a computation yields an Ok carrying a value or an Err carrying a message, and you chain onto it rather than throwing.
error handling0.2.5Works4
Serialise::Map
An interface-only role declaring that a class can hand out a Map of its state and rebuild itself from one.
serialisation0.1.1Works3
Shell::Command
cp -r, rm -rf, mkpath, cat and which as portable Raku subs — the shell one-liners your script was about to shell out for, without the shell.
files1.2Works2
Statistics::Distributions
Twenty-one named probability distributions, and one call that draws from any of them. Pure Raku, one dependency, no compiler and no C library.
statistics0.1.8Works14
Storable::Lite
Persist a Raku value to a file and read it back, using Raku source as the on-disk format.
serialisation0.0.2Works3
String::Fold
Re-flow a string into lines no wider than a given width, splitting on whitespace and greedily refilling — a reflow rather than a wrap, since every existing break is discarded.
text formatting0.2.0Works3
SVG
SVG written as nested pairs and serialised to the XML — the drawing described as data, so a program that computes a chart or a diagram produces the file without writing angle brackets.
graphics1.0Works1
Sys::Domainname
Report the machine's DNS domain, by running hostname and removing everything up to the first dot.
system0.1.0Works2
TAP
The Test Anything Protocol as a library — parse TAP from a string, a file or a running program, add runs up into one verdict, and print the report you know from prove6.
testing0.3.15Divergent5
Terminal::ANSI
The ANSI escape sequences with names — bold, colour, cursor movement, alternate screen — offered twice over: as subs that write to the terminal, and as an object whose methods hand you the string instead.
terminal0.0.25Works1
Terminal::ANSIColor
Colour and style for terminal output, by name rather than by escape code — and one function to take it all back off again.
terminal0.14Works5
Terminal::Boxer
Render a flat list of cells as a bordered grid in any of eleven line-drawing styles, plus a borderless one and a generic form that takes your own eleven glyphs.
text formatting0.3.1Works4
Terminal::Getpass
Read a password from the terminal with echo switched off — one sub, a prompt, and the terminal restored afterwards however it ends.
terminal0.0.11Works1
Terminal::Spinners
Progress spinners and percentage bars for a terminal — ten animations and four bar styles, drawn by backspacing over the previous frame.
terminal1.6.0Works2
Terminal::WCWidth
How many columns a character really takes up on a terminal — two for CJK, none for a combining mark, and a refusal for a control code — so that padded columns survive text that is not ASCII.
terminal0.1.5Works3
Test::META
One test that proves your distribution's META6.json is complete, parseable and honest — before an installer or the ecosystem indexer finds out it is not.
testing0.0.20Works2
Test::Output
Captures what a block writes to STDOUT and STDERR, either handing you the text or asserting on it directly as a test — the missing piece for testing code whose real output is printed, not returned.
testing1.001006Works2
Text::BorderedBlock
Draw a heavy-ruled box around a block of text, with an optional header and footer, growing to fit the widest line but never below a configurable minimum.
text formatting0.1.0Works3
Text::Calendar
Render month grids as plain text — one month, several side by side, or a whole year — with a transposed layout and the raw week data available.
calendars0.1.6Works5
Text::Center
Centre a value in a field of a given width, padding both sides with a fill string — returning the text untouched rather than truncating when it will not fit.
text formatting0.0.3Works3
Text::Diff::Sift4
The Sift4 string-distance approximation — one linear pass counting matches inside a sliding offset window — as a cheap stand-in for Levenshtein.
text comparison2.0.1Works3
Text::Levenshtein::Damerau
How many single-character edits turn one string into another — plain Levenshtein, and the Damerau variant that counts a swapped pair as one edit — with a cut-off for when you only care whether it is close.
text0.3.0Works1
Text::MiscUtils
Four small text utilities under one distribution — English plurals and ordinals, terminal-aware wrapping and column widths, and the variation selectors that decide whether a glyph is drawn as emoji.
text0.0.13Works2
Text::Utils
A drawer of string chores — thousands separators, whitespace normalising, lists written out in English, comment stripping, substring counts and two kinds of line wrapping — each sub behind its own export tag.
text4.0.2Works2
Text::Wrap
One sub that folds a string to a width — paragraphs kept apart, a prefix per line if you want one, and long words either left whole or cut — for text that is going to a terminal or a plain-text file.
text0.0.5Works1
Time::Duration::Parser
Turn a human-written duration — "2 hours", "1 week 2 days", "1:30" — into a number of seconds, with a month fixed at 30 days and a year at 365.
time0.0.3Works4
TinyFloats
Convert between Raku Nums and the bit patterns of four small floating-point formats — binary16, bfloat16, TensorFloat-32 and E5M2.
numeric0.0.5Divergent4
Trap
A class that impersonates an output handle well enough for print, say and printf, and keeps what was written instead of sending it anywhere.
testing0.0.5Divergent3
Unicode::PRECIS
The PRECIS framework of RFC 8264 — decide whether a string is acceptable as a username or a password, and normalise it for comparison.
unicode0.5.2Partial3
Unicode::UTF8-Parser
Turn a reactive stream of UTF-8 bytes into a stream of characters, holding partial multi-byte sequences across emissions.
encoding0.3Divergent3
UNIX::Privileges
Look a user or group up, drop to it in the correct order, change a path's owner, and chroot — over a small bundled C helper.
system0.1.6Works3
URI
RFC 3986 in a Raku grammar. Take a URI apart into scheme, host, path and query, put a new one together, and get the escaping right without thinking about it.
web0.3.8Works11
URI::Encode
Percent-encoding and decoding per RFC 3986 — with the distinction that matters kept intact, between escaping a whole URL and escaping one value going into it.
web1.0Works3
Util::Bitfield
Pick apart the sub-byte fields of a packed binary word — extract, insert and mask — with bit positions counted from the most significant end, as protocol diagrams draw them.
bit manipulation0.1.0Partial4
UUID
Version-4 UUIDs — 122 random bits in the one format every database, log pipeline and API on earth already accepts.
identifiers1.0.0Works2
UUID::V4
Version-4 UUIDs and a predicate that recognises them — two subs, no state, no configuration, and a flaw in how the random bytes reach the string that is worth knowing before you rely on it.
identifiers1.0.0Works2
XDG::BaseDirectory
Where a program should keep its config, data, cache and state on a Unix desktop, by the freedesktop.org rules — the environment variables read, the defaults filled in, and the search lists in order.
files0.0.15Works1
XML
Parse an XML document into a tree you can walk, and build one node by node — with one sharp edge to know about before you write any output.
data format0.3.6Works4
XML::Writer
Serialise a nested Raku data structure into XML, where a Pair with a Positional value is an element and one without is an attribute.
markup*Works5
YAMLish
Read and write YAML — configuration files as people actually write them, with the type guessing that implies, and one famous trap.
data format0.1.3Works6

200 modules, 605 examples. Modules are added as they are checked — see the module FAQ for how installing works, and the conformance site for the engine itself.