XS::Framework - Framework for building C++ XS modules with shared code, typemaps and C++ perl API.


To high-level overview please read Shared XS modules manifesto.

XS::Framework consists of two major parts. First part, the C++ perl API makes it convenient to write C++ code, which iterates with perl. For example, it invokes SvREFCNT_dec in destructor upon perl variable (Sv) destruction; another example is safe type casting and perl functions calls.

The second part is C++ typemaps mechanism; it serves as alternative to standard perl typemaps and is shipped with pre-made storage and lifetime policies, make it possible to write C++ XS code with zero overhead or easily adapt third-party C++ libraries into perl.

The XS::Framework assumes somewhat familiarity with common perl XS-code; please refer perlxstut and perlapi. The shipped manuals consists of XS typemap cookbook XS::Framework::Manual::Cookbook, which has a variety of recipes from basic to advanced cases; and separate XS::Framework::Manual::Typemap and XS::Framework::Manual::SVAPI references.


Pronin Oleg <>, Crazy Panda LTD


You may distribute this code under the same terms as Perl itself.