libperl-sys 0.4.0-alpha.1

Low-level FFI declarations for libperl (Perl5), generated via bindgen + libperl-macrogen
Documentation
libperl-sys-0.4.0-alpha.1 has been yanked.

libperl-sys

Low-level, raw FFI declarations for the Perl 5 C API (libperl). Generated at build time by bindgen + libperl-macrogen (the latter handles C macros and static inline functions that bindgen deliberately skips).

This crate is the unsafe foundation under libperl-rs; most users want that safer wrapper. Reach for libperl-sys directly when you need an API element that hasn't been wrapped yet, or when you're writing a sibling crate at the same layer.

What you get

Re-exported at the crate root:

  • Perl_* extern functions and PL_* mutable statics (from bindgen).
  • Sv* / Av* / Hv* macro-shaped helpers and inline wrappers (from libperl-macrogen).
  • PL_xxx!() declarative macros that paper over the threaded vs non-threaded differences in how PL_* globals are spelled, so source like PL_stack_base!(my_perl) compiles in both modes.
  • Opcode → name lookup table (conv_opcode) and per-function signature dictionary (sigdb) for downstream codegen.

Safety

Every public item here is unsafe to use. Even reading a PL_* global requires the right interpreter context, and Perl's API uses raw *mut pointers ubiquitously.

Build requirements

  • A working Perl 5 install with development headers (perl-dev / perl-devel).
  • LLVM + libclang (for bindgen).
  • Internet access at first build (libperl-macrogen downloads a pre-extracted apidoc snapshot from GitHub Releases).

Threaded vs non-threaded Perl is auto-detected — no feature flag.

License

GPL-1.0-or-later OR Artistic-1.0-Perl. Same terms as Perl 5 itself.