> On May 6, 2016, at 4:14 PM, Martin Isenburg <
martin....@gmail.com> wrote:
>
> currently there is no C++ interface for the LASzip DLL. However, you could use the LASlib library and given that your PDAL source is open I think you can also just link to that code without violating the LGPL. As this may not work - license-wise - for closed source PDAL derivatives you could probably compile your own LASlib C++ DLL without much trouble. The class EXPORT hooks are more or less already there but I have not yet used them myself.
Martin,
It will be possible to satisfy the LGPL linking scenario without mixing any LASzip code into PDAL's codebase and causing any license pollution.
As I've mentioned before, we also have the lazperf library [1] available, which is what we use to provide LAZ support in JavaScript and C++. It provides an alternative implementation to the
laszip.org library. We have no reason to get in front of what you're planning for LAZ 1.4 with it, but lazperf does have a significantly different software engineering perspective than the
laszip.org codebase. There is also a significant regression test suite to ensure that we maintain compatibility with your leading codebase. See
https://travis-ci.org/hobu/laz-perf for output. I appreciate the specification document [2] and I hope that effort can continue.
For the moment, PDAL is considering defaulting to using lazperf so we only have to worry about one codebase. We're already having to change APIs due to the deprecation of the LAZunzipper API. Lazperf fits PDAL's C++ better than the LASzip DLL API, and PDAL already uses Lazperf for compressing individual attributes without LAZ-style models in drivers such as Oracle and SQLite and over-the-network requests like Greyhound. Multiple libraries are confusing for our users, especially since we are not doing sophisticated things beyond simple reading and writing data. Our plan is to catch up the Lazperf codebase with a follow-on implementation of 1.4 once your specification document is released and enough compatibility test data is available to do byte validation on more than one implementation.
Howard
[1]
https://github.com/hobu/laz-perf
[2]
https://github.com/LASzip/LASzip/blob/master/design/specification.rst