Alien::OpenVcdiff - Build and install Google's open-vcdiff delta encoding library


Command-line utility

    use Alien::OpenVcdiff;

    say Alien::OpenVcdiff::vcdiff_binary();
    ## /usr/local/share/perl/5.16.2/auto/share/dist/Alien-OpenVcdiff/bin/vcdiff

    system(Alien::OpenVcdiff::vcdiff_binary() . " encode -dictionary file1 -target file2 -json");

Library interface

    my $openvcdiff = Alien::OpenVcdiff->new;

    my $cflags = $openvcdiff->cflags;
    ## "-I/usr/local/share/perl/5.16.2/auto/share/dist/Alien-OpenVcdiff/include/google"

    my $libs = $openvcdiff->libs;
    ## "-L/usr/local/share/perl/5.16.2/auto/share/dist/Alien-OpenVcdiff/lib -lvcdcom -lvcddec -lvcdenc"

The above methods are inherited from Alien::Base which has worked really well so far except with $cflags I found I had to strip the "google" off the end of the include directory.


This package configures, builds, and installs Google's open-vcdiff. This library and its associated command-line utility vcdiff implement RFC 3284, "The VCDIFF Generic Differencing and Compression Data Format". This RFC specifies a file format for delta encoding and can be thought of as a diff/patch equivalent for binary data (or any kind of data really).

The vcdiff command-line utility binary's location can be found by calling Alien::OpenVcdiff::vcdiff_binary() after the package has been loaded.

Although the binary might come in handy sometimes, the primary purpose of this module is to install the and shared libraries so that they can be used by the Vcdiff::OpenVcdiff module. Nothing from open-vcdiff is installed globally -- it's all contained in the perl auto directory.


Alien-OpenVcdiff github repo





Doug Hoyte, <>


Copyright 2013 Doug Hoyte.

This module includes open-vcdiff which is copyright Google Inc and Lincoln Smith. open-vcdiff is licensed under the Apache 2.0 license which can be found in the included open-vcdiff distribution.

This module is licensed under the same terms as perl itself or under the Apache 2.0 license, whichever you prefer.