<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:windowtext">You have also the Julia wrapper that needs no ffi lib to do the bindings<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext">https://github.com/visr/GDAL.jl<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> gdal-dev [mailto:gdal-dev-bounces@lists.osgeo.org]
<b>On Behalf Of </b>Ari Jolma<br>
<b>Sent:</b> Thursday, December 21, 2017 1:03 AM<br>
<b>To:</b> Sean Gillies <sean@mapbox.com>; Kurt Schwehr <schwehr@gmail.com><br>
<b>Cc:</b> gdal dev <gdal-dev@lists.osgeo.org><br>
<b>Subject:</b> Re: [gdal-dev] FFI Interface (to Perl)<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sean Gillies kirjoitti 21.12.2017 klo 11:48:<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">Ari, <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">This sounds great. I don't use Perl as much as I used to – unless you count GNU Parallel, which I use about 320 hours a day – but I'll follow your progress.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It seems to me that the idea of a common API across different scripting languages isn't attractive to programmers like it once was. R and Node.js interfaces for GDAL are being developed elsewhere, as are my Rasterio and Fiona projects.
 As long as we're all attentive to the maintenance of the core library the diversity is a good thing.<o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><br>
I'm more interested in mixing Perl with R for example (sending some things from Perl to be done in R) than having a common API. Every language has its traditions for API.<br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Shapely uses libffi to bind GEOS functions. The only reason I don't use libffi (and Python's cffi module) for Rasterio and Fiona is that Cython makes integration with Numpy so painless.<o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal"><br>
So far I've not tried integration with PDL, which is for similar purposes than Numpy. We'll see how that goes eventually, it is anyway something I use for raster processing.<br>
<br>
Ari<br>
<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Wed, Dec 20, 2017 at 5:14 PM, Kurt Schwehr <<a href="mailto:schwehr@gmail.com" target="_blank">schwehr@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal">Cool!  Should be useful for other languages to see what is possible with libffi<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Dec 20, 2017 3:23 PM, "Ari Jolma" <<a href="mailto:ari.jolma@gmail.com" target="_blank">ari.jolma@gmail.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Folks,<br>
<br>
I've been experimenting with the Perl module FFI::Platypus, to create a Perl interface to GDAL with its help(1) and it's progressing well. FFI::Platypus itself uses libffi, which is a portable interface library. That, and Alien::gdal, which is a Perl module
 to use GDAL in a system that has Perl, allow some significant simplifications and streamlining for the Perl bindings.<br>
<br>
I can imagine those leading to the retirement of the Swig based Perl bindings at some point (like GDAL 3.0) and having only a single distribution of Perl GDAL bindings that does not live in GDAL source tree and is distributed through CPAN. In the meantime the
 Swig based bindings will live in GDAL source tree and a copy of that with a modified configuration system (that uses the Alien::gdal) in github(2) + CPAN.<br>
<br>
I don't think I'm aiming at 100% similar API with the FFI interface than Geo::GDAL since in the latter has accumulated some undesirable things over the years. Anybody interested in the new API is welcome to collaborate.<br>
<br>
Best regards,<br>
<br>
Ari<br>
<br>
(1) <a href="https://github.com/ajolma/Geo-GDAL-FFI" target="_blank">https://github.com/ajolma/Geo-GDAL-FFI</a><br>
<br>
(2) <a href="https://github.com/ajolma/Geo-GDAL-2.02" target="_blank">https://github.com/ajolma/Geo-GDAL-2.02</a><br>
<br>
<br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org" target="_blank">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><br>
_______________________________________________<br>
gdal-dev mailing list<br>
<a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">https://lists.osgeo.org/mailman/listinfo/gdal-dev</a><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><br>
<br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">Sean Gillies<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>