NAME

Radamsa - Perl 5 bindings for the Radamsa mutational fuzzer

SYNOPSIS

use Radamsa qw(mutate);

my $output = mutate("hello\n", seed => 1234, max_len => 4096);

my $rad = Radamsa->new(seed => 1, max_len => 4096);
my $case1 = $rad->mutate("sample one");
my $case2 = $rad->mutate("sample two");

DESCRIPTION

This module wraps Radamsa's C library interface and exposes a simple Perl API for generating fuzzed variants of byte strings. The CPAN distribution ships a vendored generated C source for Radamsa, so installation does not need network access or the original Owl Lisp toolchain.

FUNCTIONS

mutate

my $output = mutate($input, %options);

Mutates one byte string and returns the mutated output.

Options:

  • seed

    Unsigned 32-bit seed passed to the Radamsa library entry point.

  • max_len

    Maximum output size in bytes. Defaults to a heuristic based on the input size.

METHODS

new

my $rad = Radamsa->new(%options);

Creates a stateful mutator object.

NOTES

Radamsa's library mode keeps internal mutation state between calls. A fixed seed influences generation, but repeated calls with the same seed should not be assumed to be byte-for-byte deterministic for the lifetime of the same process.

LICENSE

This distribution includes vendored Radamsa source code by Aki Helin under the MIT license. See the top-level LICENSE file.