Skip to content

salortiz/NativeLibs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NativeLibs

The simple use in your module is:

use NativeLibs;
my $Lib; # To keep the reference

sub some_native_func() is native { * } # Note no library needed
… The rest of your module

INIT {
    # Load the needed library
    without $Lib = NativeLibs::Loader.load('libsomelib.so.4') {
        .fail;
    }
}
…

If in your native library binding you need to support a range of versions:

use NativeLibs;

constant LIB = NativeLibs::Searcher.at-runtime(
    'mysqlclient', # The library short name
    'mysql_init',  # A 'well known symbol'
    16..20	       # range of supported versions
);

sub mysql_get_client_info(--> Str)       is export is native(LIB) { * }

...

This is a grow-up version of the original NativeLibs included in DBIish now released to allow the interested people the testing and discussion of the module.

Other examples in the drivers of https://github.com/perl6/DBIish

About

Native libraries utilities for Perl6

Resources

Stars

Watchers

Forks

Packages

No packages published