Skip to content
This repository has been archived by the owner on Oct 28, 2020. It is now read-only.

vickenty/perl-sys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Perl XS bindings for Rust

This crate provides raw low-level bindings for Perl XS API.

Dependencies

  • C compiler
  • Perl 5.18 or later
  • Perl packages:
    • Ouroboros

Setup

cpan install -T Ouroboros

Build

Bindings are generated during build process for a specific version of the perl interpreter. By default, the version found in the system path is used (e.g. /usr/bin/perl). It can be overridden by specifying path to the perl binary via PERL environment variable

$ PERL=/opt/bin/custom-perl cargo build

Under rare circumstances you may need to modify the ccflags for libperl. Run

$ perl -MConfig -E 'say $Config::Config{ccflags}'

Modify these flags as necessary, and override via the LIBPERL_CCFLAGS environment variable:

$ LIBPERL_CCFLAGS=".." cargo build

Contents

Only types that are used by XS functions and macros are exported. Most of the types come as either type aliases to primitive types, or opaque structs.

Small amount of auto-generated C glue is included to deal with XS functions that are only defined as macros (e.g. SvIV, SvRV, etc), and exceptions (they rely on longjmp C function, which is not available in Rust yet).

About

Perl XS bindings for Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages