File Coverage

blib/lib/Task/FFIDev.pm
Criterion Covered Total %
statement 8 8 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 11 11 100.0


line stmt bran cond sub pod time code
1             package Task::FFIDev;
2              
3 1     1   220418 use strict;
  1         9  
  1         28  
4 1     1   4 use warnings;
  1         2  
  1         21  
5 1     1   22 use 5.020;
  1         3  
6              
7             # ABSTRACT: Task bundle for FFI development
8             our $VERSION = '0.02'; # VERSION
9              
10              
11             1;
12              
13             __END__
14              
15             =pod
16              
17             =encoding UTF-8
18              
19             =head1 NAME
20              
21             Task::FFIDev - Task bundle for FFI development
22              
23             =head1 VERSION
24              
25             version 0.02
26              
27             =head1 SYNOPSIS
28              
29             $ cpanm Task::FFIDev
30              
31             =head1 DESCRIPTION
32              
33             This L<Task> bundle is useful for those doing FFI development with L<FFI::Platypus>. Installing it
34             will give you these modules:
35              
36             =over 4
37              
38             =item L<Dist::Zilla::MintingProfile::FFI>
39              
40             L<Dist::Zilla> minting profile for creating L<FFI::Platypus> bindings.
41              
42             =item L<Dist::Zilla::Plugin::FFI>
43              
44             L<Dist::Zilla> plugins useful for FFI
45              
46             =item L<Dist::Zilla::Plugin::DynamicPrereqs>
47              
48             L<Dist::Zilla> plugin for dynamic prereqs. Allows your FFI to use L<Alien>s in fallback mode.
49              
50             =item L<FFI::C>
51              
52             Create interfaces to C structured data.
53              
54             =item L<FFI::CheckLib>
55              
56             Find dynamic libraries for use with FFI
57              
58             =item L<FFI::Platypus>
59              
60             Library for writing your own FFI bindings in perl
61              
62             =item L<FFI::Platypus::Type::Enum>
63              
64             Platypus type plugin for enumerated types
65              
66             =item L<FFI::Platypus::Type::PtrObject>
67              
68             Platypus type plugin for opaque pointer objects
69              
70             =item L<PeekPoke::FFI>
71              
72             Library for peeking and poking arbitrary memory locations.
73              
74             =item L<Test2::Tools::FFI>
75              
76             Testing tools for FFI.
77              
78             =back
79              
80             The latest versions as of when this L<Task> was released should be installed at minimum, if they are
81             not already installed.
82              
83             Other prereqs may be added in the future if they are deemed useful for FFI development.
84              
85             =head1 CAVEATS
86              
87             This module does require Perl 5.20 or better currently, because at least some of its prereqs require
88             that version. Note that FFI bindings authored with these tools should work on Perls of at least
89             5.8.4 or better, so this is just a I<development> requirement.
90              
91             This L<Task> indirectly requires L<Alien::FFI>. If you do not want to build that from source
92             or do not have internet access where the build is happening, you will want to pre-install libffi.
93             On Debian based systems you can do that with C<sudo apt-get update && sudo apt-get install libffi-dev>.
94              
95             =head1 AUTHOR
96              
97             Graham Ollis <plicease@cpan.org>
98              
99             =head1 COPYRIGHT AND LICENSE
100              
101             This software is copyright (c) 2021 by Graham Ollis.
102              
103             This is free software; you can redistribute it and/or modify it under
104             the same terms as the Perl 5 programming language system itself.
105              
106             =cut