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 →
| Module | Topic | Version | State | Examples |
|---|---|---|---|---|
| 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. | text | 2.2.3 | Works | 2 |
| Acme::Scrub Hide a program inside its own source file as zero-width characters, and decode and run it on every later invocation. | curiosities | 0.2.1 | Works | 2 |
| Algorithm::BinaryIndexedTree A Fenwick tree — an array of cumulative counts supporting a bucket increment and a prefix sum, each in logarithmic time. | data structures | 0.0.8 | Works | 4 |
| 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. | algorithms | 0.1.1 | Works | 3 |
| Algorithm::KDimensionalTree A static k-d tree over numeric vectors, answering k-nearest-neighbour and radius queries, with a pluggable distance function. | data structures | 0.1.2 | Divergent | 3 |
| 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. | algorithms | 0.1.1 | Works | 3 |
| Algorithm::Manacher Manacher's linear scan for palindromic substrings — every maximal palindrome and its position, computed once at construction. | algorithms | 0.0.1 | Works | 3 |
| 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. | algorithms | 0.0.1 | Works | 4 |
| Algorithm::Soundex The American Soundex code for a name — an initial letter followed by digits for the consonant groups that follow it. | algorithms | 0.2 | Works | 3 |
| 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 structures | 0.0.5 | Works | 4 |
| 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. | algorithms | 0.0.6 | Works | 4 |
| 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 line | 0.0.2 | Works | 6 |
| ASCII::To::Uni A source-rewriting filter that replaces about forty-five ASCII spellings with the Unicode characters Raku also accepts. | source tools | 0.1.1 | Divergent | 3 |
| 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. | astronomy | 0.0.4 | Works | 5 |
| 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. | simulation | 0.2.3 | Works | 4 |
| 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 structures | 0.0.2 | Partial | 4 |
| 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 format | 0.1.0 | Works | 2 |
| 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. | encoding | 0.0.10 | Works | 4 |
| 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. | caching | 0.3.4 | Works | 4 |
| Calculator A two-number arithmetic object — construct it with an x and a y, then ask for their sum, difference, product or quotient. | arithmetic | 0.0.1 | Divergent | 3 |
| Chess Two chess notation grammars — a position in FEN and a game score in PGN — plus a terminal board printer in Unicode chess glyphs. | games | 0.2.4 | Works | 4 |
| 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 | * | Partial | 3 |
| 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. | graphics | 1.004001 | Works | 3 |
| 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. | graphics | 2.0.0 | Works | 1 |
| 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. | colour | 1.001003 | Works | 4 |
| Compress::LZString A pure-Raku port of the JavaScript lz-string dictionary coder, with five transport encodings of the same bit stream. | compression | 0.0.1 | Works | 4 |
| 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. | encoding | 1.0.1 | Works | 2 |
| 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. | concurrency | 0.1.0 | Divergent | 3 |
| 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. | configuration | 3.0.4 | Works | 2 |
| 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. | configuration | 1.0.0 | Works | 2 |
| 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. | configuration | 1.2 | Works | 4 |
| 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. | crypto | 0.4.1 | Works | 2 |
| 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 format | 0.1.4 | Works | 1 |
| 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. | debugging | 0.0.18 | Works | 1 |
| 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 generation | 0.1.11 | Works | 9 |
| Data::Transformers Numeric array reshaping — a running-total accumulator, a linear range remapper, and array padding and centring helpers — in three separately used units. | data | 0.0.2 | Works | 4 |
| 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. | data | 0.1.8 | Works | 2 |
| 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. | calendars | 0.1.0 | Works | 4 |
| 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. | calendars | 0.1.0 | Works | 4 |
| 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. | calendars | 0.1.0 | Works | 4 |
| 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. | time | 0.1.1 | Works | 1 |
| Date::Christian::Advent The date of the First Sunday of Advent for a year, computed three independent ways — which all agree. | calendars | 0.0.2 | Works | 3 |
| 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. | calendars | 0.0.5 | Works | 4 |
| 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. | time | 0.0.12 | Works | 2 |
| 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. | time | 2.3.2 | Works | 1 |
| 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. | time | 0.7.0 | Works | 3 |
| DateTime::Format strftime for Raku's DateTime — the % patterns everyone knows, with month and day names in six languages. | time | 0.1.5 | Works | 2 |
| 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. | time | 0.0.2 | Works | 3 |
| 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. | time | 0.1.3 | Divergent | 2 |
| DateTime::Math Conversions between a number and a duration unit, plus operators that add or subtract a plain number of seconds from a DateTime. | time | 0.6.2 | Works | 4 |
| 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. | time | 0.9.3 | Works | 1 |
| 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. | database | 0.6.8 | Works | 2 |
| 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 handling | 1.1 | Works | 2 |
| 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. | crypto | 1.1.0 | Works | 2 |
| Digest::FNV The Fowler–Noll–Vo non-cryptographic hash in its three historical variants, at any of six widths from 32 to 1024 bits. | hashing | 0.1.1 | Works | 3 |
| 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. | crypto | 1.0.7 | Works | 3 |
| 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. | crypto | 1.1.0 | Works | 2 |
| 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. | crypto | 1.0.1 | Works | 1 |
| 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. | crypto | 1.0.2 | Works | 1 |
| Doublephone Double Metaphone over a bundled C implementation — one call turns a word into two four-letter phonetic keys. | text comparison | 0.1.3 | Works | 3 |
| 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. | 0.0.1 | Works | 3 | |
| 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. | encoding | 0.0.4 | Works | 2 |
| 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. | configuration | 0.0.6 | Divergent | 2 |
| 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. | music | 0.0.6 | Works | 3 |
| 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. | filesystem | 0.1 | Works | 4 |
| File::Directory::Tree mkdir -p, rm -r and "empty this directory" as three Raku subs — the whole-tree operations the core deliberately leaves out. | files | 0.2 | Works | 3 |
| File::Find Walk a directory tree as a lazy sequence, filtered by name, type or path, without writing the recursion yourself. | files | 0.2.5 | Works | 3 |
| 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. | files | 0.0.1 | Works | 2 |
| 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. | files | 0.2.0 | Works | 2 |
| 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. | files | 1.0.3 | Works | 3 |
| File::Temp A temporary file or directory with a name nobody can guess, created safely, and removed for you when the program ends. | files | 0.0.12 | Works | 4 |
| 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. | files | 1.0.4 | Works | 2 |
| File::Zip Read a zip archive by shelling out to the system unzip — validate the path, list the members, extract to a directory. | archives | 0.1.2 | Works | 3 |
| 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. | finance | 0.1.0 | Works | 3 |
| 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. | text | 0.1.0 | Works | 3 |
| 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. | statistics | 0.2.11 | Divergent | 3 |
| Game::Sudoku A 9x9 grid held as an 81-character string, answering validity, completeness and per-cell candidates, with a separate solver unit. | games | 1.1.4 | Works | 4 |
| Games::Maze Carve a rectangular maze by recursive backtracking and render it as ASCII, one header line plus one line per row. | games | 0.0.1 | Works | 4 |
| 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. | geodesy | 1.0.1 | Works | 4 |
| 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. | graphics | 0.1.3 | Works | 2 |
| 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. | geospatial | 0.1.6 | Divergent | 4 |
| 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 line | 0.4.2 | Divergent | 2 |
| 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. | grammars | 0.0.2 | Works | 4 |
| 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. | git | 0.0.4 | Partial | 3 |
| Glob::Grammar A grammar for shell wildcard syntax, with an actions class that translates a glob into the source text of a Raku regex. | text | 0.0.2 | Divergent | 2 |
| 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. | grammars | 0.3.1 | Works | 4 |
| 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. | grammars | 0.1.0 | Works | 3 |
| Gray::Code::RBC Convert between integers and reflected binary Gray code, where consecutive values differ by exactly one bit, at arbitrary precision. | encoding | 0.0.4 | Works | 4 |
| Haikunator Generate a random adjective-noun-number label in the Heroku style — a throwaway name a person can read aloud and remember. | identifiers | 0.1.0 | Works | 3 |
| 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. | data | 2.0.0 | Works | 2 |
| 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. | data | 0.0.9 | Works | 2 |
| 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. | terminal | 0.0.2 | Works | 3 |
| Holidays::US::Federal The eleven US federal holidays for a year, with the date each is observed when the holiday falls on a weekend. | calendars | 0.0.5 | Works | 4 |
| 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". | web | 0.0.1 | Works | 1 |
| HTML::Lazy A lazy HTML builder where every constructor returns a thunk and nothing is rendered until the outermost one is passed to render. | markup | 0.0.1 | Partial | 4 |
| 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. | web | 1.0.3 | Works | 2 |
| HTTP::ParseParams Parse an HTTP cookie string or an x-www-form-urlencoded body into a hash, with the dialect chosen by a flag. | http | 1.0.0 | Partial | 4 |
| 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?". | web | 0.0.5 | Works | 3 |
| 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. | web | 0.2.6 | Works | 2 |
| 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. | language | 0.1.2 | Works | 2 |
| IDNA::Punycode The bootstring encoding behind internationalised domain names — one sub each way, turning Unicode text into an `xn--` label and back. | encoding | 1.0.1 | Works | 2 |
| 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. | images | 0.1.2 | Works | 3 |
| 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. | language | 0.2 | Works | 2 |
| 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. | files | 0.9.0 | Works | 1 |
| IO::Path::Dirstack A shell-style directory stack — pushd changes the working directory and remembers where you were, popd goes back. | filesystem | 0.1.1 | Works | 3 |
| 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. | files | 0.2.0 | Divergent | 2 |
| 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. | terminal | 0.4.1 | Works | 2 |
| 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 format | 0.0.21 | Works | 2 |
| 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 format | 0.20.1 | Works | 9 |
| 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. | crypto | 1.1.2 | Works | 2 |
| 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 format | 0.0.25 | Works | 3 |
| 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 format | 0.0.7 | Works | 2 |
| 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 format | 0.0.2 | Works | 6 |
| 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 format | 0.0.2 | Works | 2 |
| 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 format | 0.1.1 | Works | 2 |
| JSON::Pretty::Sorted A pretty-printing JSON writer with a caller-supplied ordering hook threaded through the whole document. | json | 0.0.2 | Partial | 4 |
| 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 format | 1.0 | Works | 4 |
| 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 format | 0.18 | Works | 3 |
| 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. | concurrency | 0.0.1 | Works | 3 |
| LCS::All Every longest common subsequence of two sequences, not just one, returned as lists of index pairs into the originals. | algorithms | 0.2.0 | Works | 3 |
| LEB128 LEB128 variable-length integers, signed and unsigned — the format DWARF, WebAssembly and Protocol Buffers pack integers with — at arbitrary precision. | encoding | 1.0 | Works | 4 |
| 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. | metadata | 3.28.0 | Works | 3 |
| 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. | text | 1.3 | Works | 4 |
| Lingua::EN::Syllable Estimate how many syllables an English word has, by counting vowel groups and applying a list of corrective patterns. | text | 1.0.3 | Works | 4 |
| 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. | language | 0.6.2 | Works | 3 |
| 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. | debugging | 0.3.2 | Works | 2 |
| 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. | debugging | 0.4.6 | Works | 2 |
| LZW::Revolunet A port of a JavaScript LZW routine that replaces repeated substrings with single characters drawn from a private code space. | compression | 0.3.2 | Divergent | 3 |
| Math::Curves Two curve primitives for interpolation — a straight-line function and Bezier evaluation at a parameter for two, three or four control points. | maths | 0.0.1 | Divergent | 3 |
| 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. | maths | 0.1.4 | Works | 2 |
| 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. | text | 0.1.3 | Works | 3 |
| Math::DistanceFunctions::Native Vector distance and similarity primitives backed by a bundled C implementation — Euclidean, squared Euclidean, cosine, dot product and norm. | maths | 0.1.2 | Works | 3 |
| 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. | maths | 0.0.7 | Divergent | 3 |
| Math::Random Seedable pseudo-random generators as objects — a Mersenne Twister matching the reference implementation, and a linear congruential one with Java's constants. | maths | 0.1.3 | Divergent | 2 |
| 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. | maths | 0.1.1 | Works | 2 |
| 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 format | 0.0.31 | Works | 1 |
| 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. | language | 0.0.10 | Works | 2 |
| 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. | encoding | 1.2.5 | Works | 5 |
| 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. | encoding | 1.0.0 | Works | 4 |
| 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. | web | 0.3 | Works | 1 |
| 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. | native | 0.0.6 | Works | 1 |
| Netstring Bernstein's netstring framing — a decimal byte count, a colon, the payload, a comma — as two encoders and one socket reader. | encoding | 0.0.4 | Divergent | 4 |
| Number::Bytes::Human Convert byte counts to and from short human-readable strings — 1048576 to 1M and back — using binary magnitudes. | formatting | 0.0.4 | Partial | 4 |
| 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. | concurrency | 1.1.7 | Works | 3 |
| 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. | crypto | 0.2.9 | Works | 1 |
| P5getgrnam The POSIX group-database calls, shaped so the return value matches what Perl's built-ins of the same name hand back. | system | 0.0.10 | Works | 3 |
| P5getnetbyname The POSIX network-database calls, returning Perl's four-field record of name, aliases, address type and network number. | system | 0.0.9 | Works | 3 |
| P5getpriority Scheduling priority and process groups — getpriority, setpriority, getppid, getpgrp and setpgrp — bound directly, returning plain integers. | system | 0.0.8 | Works | 3 |
| P5getprotobyname The POSIX protocol-database calls, returning Perl's three-field record of name, aliases and IANA protocol number. | system | 0.0.7 | Works | 4 |
| P5getpwnam The POSIX password-database calls, reshaping the platform's struct passwd into the field order Perl's getpw built-ins use. | system | 0.0.11 | Works | 3 |
| 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. | system | 0.0.8 | Works | 5 |
| 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. | time | 0.0.11 | Works | 2 |
| P5opendir Perl's directory-handle vocabulary — opendir, readdir, telldir, seekdir, rewinddir, closedir — over a snapshot of the names taken at open time. | filesystem | 0.0.10 | Works | 3 |
| 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. | system | 1.0.0 | Works | 2 |
| 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. | files | 0.4.7 | Works | 2 |
| PathTools Five shell-flavoured filesystem helpers — list a tree, delete paths, create a directory chain, mint temporary paths — all Str in and Str out. | filesystem | 0.2.0 | Works | 3 |
| Physics::Error The measurement uncertainty attached to a physical quantity — the plus-or-minus — converting between absolute, relative and percentage forms. | science | 0.1.9 | Works | 3 |
| Pod::Literate A grammar that splits a Raku source file into alternating documentation and code chunks, handing back the matched substrings. | pod | 0.0.2 | Works | 3 |
| Proc::Easy One sub that wraps run, always capturing both output streams, and hands back the exit code, stderr and stdout together. | process | 0.0.2 | Divergent | 4 |
| 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. | system | 0.1.2 | Partial | 3 |
| 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 handling | 0.2.5 | Works | 4 |
| Serialise::Map An interface-only role declaring that a class can hand out a Map of its state and rebuild itself from one. | serialisation | 0.1.1 | Works | 3 |
| 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. | files | 1.2 | Works | 2 |
| 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. | statistics | 0.1.8 | Works | 14 |
| Storable::Lite Persist a Raku value to a file and read it back, using Raku source as the on-disk format. | serialisation | 0.0.2 | Works | 3 |
| 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 formatting | 0.2.0 | Works | 3 |
| 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. | graphics | 1.0 | Works | 1 |
| Sys::Domainname Report the machine's DNS domain, by running hostname and removing everything up to the first dot. | system | 0.1.0 | Works | 2 |
| 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. | testing | 0.3.15 | Divergent | 5 |
| 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. | terminal | 0.0.25 | Works | 1 |
| 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. | terminal | 0.14 | Works | 5 |
| 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 formatting | 0.3.1 | Works | 4 |
| Terminal::Getpass Read a password from the terminal with echo switched off — one sub, a prompt, and the terminal restored afterwards however it ends. | terminal | 0.0.11 | Works | 1 |
| Terminal::Spinners Progress spinners and percentage bars for a terminal — ten animations and four bar styles, drawn by backspacing over the previous frame. | terminal | 1.6.0 | Works | 2 |
| 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. | terminal | 0.1.5 | Works | 3 |
| 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. | testing | 0.0.20 | Works | 2 |
| 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. | testing | 1.001006 | Works | 2 |
| 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 formatting | 0.1.0 | Works | 3 |
| 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. | calendars | 0.1.6 | Works | 5 |
| 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 formatting | 0.0.3 | Works | 3 |
| 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 comparison | 2.0.1 | Works | 3 |
| 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. | text | 0.3.0 | Works | 1 |
| 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. | text | 0.0.13 | Works | 2 |
| 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. | text | 4.0.2 | Works | 2 |
| 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. | text | 0.0.5 | Works | 1 |
| 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. | time | 0.0.3 | Works | 4 |
| TinyFloats Convert between Raku Nums and the bit patterns of four small floating-point formats — binary16, bfloat16, TensorFloat-32 and E5M2. | numeric | 0.0.5 | Divergent | 4 |
| 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. | testing | 0.0.5 | Divergent | 3 |
| 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. | unicode | 0.5.2 | Partial | 3 |
| Unicode::UTF8-Parser Turn a reactive stream of UTF-8 bytes into a stream of characters, holding partial multi-byte sequences across emissions. | encoding | 0.3 | Divergent | 3 |
| 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. | system | 0.1.6 | Works | 3 |
| 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. | web | 0.3.8 | Works | 11 |
| 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. | web | 1.0 | Works | 3 |
| 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 manipulation | 0.1.0 | Partial | 4 |
| UUID Version-4 UUIDs — 122 random bits in the one format every database, log pipeline and API on earth already accepts. | identifiers | 1.0.0 | Works | 2 |
| 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. | identifiers | 1.0.0 | Works | 2 |
| 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. | files | 0.0.15 | Works | 1 |
| 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 format | 0.3.6 | Works | 4 |
| 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 | * | Works | 5 |
| YAMLish Read and write YAML — configuration files as people actually write them, with the type guessing that implies, and one famous trap. | data format | 0.1.3 | Works | 6 |
Nothing here matches that. The whole-ecosystem listing covers every distribution, including the ones without a page yet.
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.