Apophis
view release on metacpan or search on metacpan
lib/Apophis.pm view on Meta::CPAN
# Sharded path
my $path = $ca->path_for($id);
# /var/store/a3/bb/a3bb189e-8bf9-5f18-b3f6-1b2f5f5c1e3a
# Bulk operations
my @ids = $ca->store_many(\@content_refs);
my @missing = $ca->find_missing(\@ids);
# Metadata
$ca->store(\$content, meta => { mime_type => 'image/png' });
=head1 DESCRIPTION
Apophis is a B<100% XS> content-addressable storage library built on the
B<Horus> UUID library (RFC 9562). It generates deterministic UUID v5
identifiers for arbitrary content using SHA-1 namespace hashing.
Same content always produces the same UUID. Different namespaces produce
different UUIDs for the same content.
lib/Apophis.pm view on Meta::CPAN
my $id = $ca->identify_file('/path/to/file');
Streaming identification â reads the file in 64KB chunks via SHA-1.
Uses O(1) memory regardless of file size. Returns the same UUID that
C<identify()> would for the same content.
=head2 store
my $id = $ca->store(\$content);
my $id = $ca->store(\$content, store_dir => '/other');
my $id = $ca->store(\$content, meta => { mime_type => 'image/png' });
Identifies the content and writes it to the sharded store. Returns the
UUID. If the content already exists, returns immediately (CAS dedup).
Writes are atomic via temp file + rename.
=head2 fetch
my $data_ref = $ca->fetch($id);
Returns a scalar reference to the stored content, or C<undef> if not found.
( run in 1.304 second using v1.01-cache-2.11-cpan-df04353d9ac )