{"id":21651666,"url":"https://github.com/hoytech/vcdiff-openvcdiff","last_synced_at":"2025-09-12T22:34:48.579Z","repository":{"id":8832566,"uuid":"10534929","full_name":"hoytech/Vcdiff-OpenVcdiff","owner":"hoytech","description":"open-vcdiff backend for Vcdiff","archived":false,"fork":false,"pushed_at":"2013-06-22T04:29:56.000Z","size":184,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T05:42:48.408Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hoytech.png","metadata":{"files":{"readme":"README.pod","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-06T19:41:11.000Z","updated_at":"2016-04-20T04:16:42.000Z","dependencies_parsed_at":"2022-09-17T03:50:53.404Z","dependency_job_id":null,"html_url":"https://github.com/hoytech/Vcdiff-OpenVcdiff","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoytech%2FVcdiff-OpenVcdiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoytech%2FVcdiff-OpenVcdiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoytech%2FVcdiff-OpenVcdiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hoytech%2FVcdiff-OpenVcdiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hoytech","download_url":"https://codeload.github.com/hoytech/Vcdiff-OpenVcdiff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244547602,"owners_count":20470103,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-25T07:49:09.046Z","updated_at":"2025-03-20T03:59:55.140Z","avatar_url":"https://github.com/hoytech.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"=head1 NAME\n\nVcdiff::OpenVcdiff - open-vcdiff backend for Vcdiff\n\n=head1 SYNOPSIS\n\n    use Vcdiff::OpenVcdiff;\n\n    my $delta = Vcdiff::OpenVcdiff::diff($source, $target);\n\n    my $target2 = Vcdiff::OpenVcdiff::patch($source, $delta);\n\n    ## $target2 eq $target\n\nThis module is a backend to the L\u003cVcdiff\u003e module and isn't usually used directly.\n\n\n\n=head1 DESCRIPTION\n\nThis module uses L\u003cAlien::OpenVcdiff\u003e which is a module that configures, builds, and installs Google's L\u003copen-vcdiff|http://code.google.com/p/open-vcdiff/\u003e library.\n\nThe alien package installs the C\u003cvcdiff\u003e binary for your convenience but this module uses the C\u003clibvcdenc.so\u003e and C\u003clibvcddec.so\u003e shared libraries so that the diffing computation is done in-process instead of forking processes.\n\n\n=head1 PROS\n\n=over\n\n=item *\n\nApache licensed\n\n=item *\n\nopen-vcdiff has a really cool feature that lets you re-use \"hashed dictionaries\" for multiple diff operations (but this module doesn't expose that yet).\n\n=back\n\n\n=head1 CONS\n\n=over\n\n=item *\n\nEven with the streaming API C\u003copen-vcdiff\u003e has a hard upper-limit of 2G file sizes and the default (which this module hasn't changed) is 64M so be warned.\n\n=item *\n\nIf the source argument is a file handle, L\u003cVcdiff::OpenVcdiff\u003e will try to C\u003cmmap(2)\u003e the entire file into memory with L\u003cSys::Mmap\u003e. As well as adding a dependency, this means that source files must be able to fit in your address space. Because of the file size limitation described above, this shouldn't be an issue. See the \"STREAMING API\" section of L\u003cVcdiff\u003e for more details.\n\n=item *\n\nThe L\u003cAlien::OpenVcdiff\u003e dependency takes a long time to compile compared to L\u003cVcdiff::Xdelta3\u003e although it's not a completely fair comparison because the alien module also runs open-vcdiff's test-suite (which is good).\n\n=item *\n\nThe library writes to standard error in the event of errors and I don't believe there is any way to silence these messages.\n\n=back\n\n\n\n\n=head1 SEE ALSO\n\nL\u003cVcdiff-OpenVcdiff github repo|https://github.com/hoytech/Vcdiff-OpenVcdiff\u003e\n\nL\u003cVcdiff\u003e\n\nL\u003cAlien::OpenVcdiff\u003e\n\nL\u003cOfficial open-vcdiff website|http://code.google.com/p/open-vcdiff/\u003e\n\n\n=head1 AUTHOR\n\nDoug Hoyte, C\u003c\u003c \u003cdoug@hcsw.org\u003e \u003e\u003e\n\n\n=head1 COPYRIGHT \u0026 LICENSE\n\nCopyright 2013 Doug Hoyte.\n\nThis module is licensed under the same terms as perl itself.\n\n\n=cut\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoytech%2Fvcdiff-openvcdiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhoytech%2Fvcdiff-openvcdiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhoytech%2Fvcdiff-openvcdiff/lists"}