Libmarpa Resources

The Libmarpa API document (HTML).

The Libmarpa API document (one-page HTML).

The Libmarpa API document (PDF).

Other Resources

Jeffrey Kegler's website


The main web site for Marpa

The Ocean of Awareness blog: home page, chronological index, and annotated index.

Distribution: CPAN | MetaCPAN

Mailing List:

IRC Channel: #marpa at

Code repository: github

About Libmarpa

Libmarpa is the C language library that implements the parse engine at the core of Marpa. It is used by Marpa::R2, the Perl CPAN module, but it is completely separate, and resides in its own github repo.

Installing Libmarpa

These instructions describe how to install the separate Libmarpa. Unless reading Libmarpa is your only interest, you may also wish to install Marpa::R2. Libmarpa contains a few tests, but the most extensive test suite for Libmarpa is that for Marpa::R2. To install Libmarpa, do the following:


In reading and working with Libmarpa, the following documents will be useful:

Working on Libmarpa

I worked hard to limit the prerequisites needed to configure, compile and run Libmarpa. Working on Libmarpa's internals is another matter. Libmarpa is literate programming -- and work on Libmarpa's internals requires, among other things, Knuth's CWeb and therefore Tex.

Libmarpa is highly mathematical code. Its internals are, frankly, daunting. For me, Marpa has a real beauty, but nobody could claim it achieves that beauty through simplicity. I once had hopes that reading Marpa would be like experiencing the effortless power of a late Picasso. But Angkor Wat and Hieronymous Bosch show that beauty comes in many forms.

There is a "bleeding edge" version of the Libmarpa API document, formatted as a single page of HTML. Please be aware that this version may be untested and unchecked. Unless you are assisting in Libmarpa development, you will want to ignore this page, in favor of the API documentation for a stable release.