The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.03 - 2022-11-06

  • DataStore::CAS:
    • New API methods ->calculate_hash and ->calculate_file_hash
    • During all ->put methods, calculate the hash first before writing a stream, (if the source is a scalar or a file) to avoid unnecessary writes.
    • Allow scalar-refs to be passed to ->put_scalar to avoid copying large scalars.
    • Do not inspect is_utf8 flag during ->put_scalar. Require caller to provide bytes, and die if given a character > 255.
    • New ->put_file option { move => 1 }, renames the source file into the CAS unlinking the original even if it was a duplicate.
  • DataStore::CAS::Simple:
    • New option '=' as last element of ->fanout causes content files to be named with the full hash as the filename, instead of the remainder of the hash that wasn't part of the directories.
    • Remove attribute _fanout_regex which never should have been documented as if it were public.
    • New methods ->path_parts_for_hash and ->path_for_hash
    • Raise the limits on max directory fanout

Modules

Abstract base class for Content Addressable Storage
Object returned by DataStore::CAS describing a CAS entry
Handle-emulation object used for writing content into a CAS
Simple file/directory based CAS implementation
In-memory CAS for debugging and testing
Handy base class for virtual filehandles

Provides

in lib/DataStore/CAS.pm
in lib/DataStore/CAS.pm
in lib/DataStore/CAS/Simple.pm
in lib/DataStore/CAS.pm