NAME
    UUID4::Tiny - Cryptographically secure v4 UUIDs for Linux x64

VERSION
    version 0.003

SYNOPSIS
     use UUID4::Tiny qw/
        create_uuid
        create_uuid_string
        is_uuid_string
        is_uuid4_string
        string_to_uuid
        uuid_to_string
        /;

     my $uuid        = create_uuid;
     my $uuid_string = create_uuid_string;

     $uuid        = string_to_uuid $uuid_string;
     $uuid_string = uuid_to_string $uuid;

     if ( is_uuid4_string $uuid_string ) { ... }

DESCRIPTION
    Uses the Linux getrandom() system call to generate a version 4 UUID.

    Requires Linux kernel 3.17 or newer for getrandom().

FUNCTIONS
  create_uuid
        my $uuid = create_uuid;

    Gets a series of 16 random bytes via the getrandom() system call and
    sets the UUID4 version and variant on those bytes. Dies with a message
    containing the errno if the call to getrandom() fails.

  uuid_to_string
        my $uuid_string = uuid_to_string( create_uuid );

    Converts a 16 byte UUID to a canonical 8-4-4-4-12 format UUID string.

    Calling this function on a string that is already a UUID string will
    return the string unmodified, and raise a warning.

    Calling this function on a reference is almost certainly not what you
    want, as the function would naively try to unpack the stringified
    reference, e.g. "ARRAY(0xdeadbeef1234)", into a UUID string. For this
    reason, the function will croak if its input is a reference.

  create_uuid_string
        my $uuid_string = create_uuid_string;

    Shortcut for uuid_to_string called on create_uuid.

  string_to_uuid
        my $uuid = string_to_uuid( $uuid_string );

    Converts a canonical 8-4-4-4-12 format UUID string to a 16 byte UUID.

  is_uuid_string
        if ( is_uuid_string( $input ) ) { ... }

    Checks if the input matches the canonical 8-4-4-4-12 format.

  is_uuid4_string
        if ( is_uuid4_string( $input ) ) { ... }

    Similar to is_uuid_string, additionaly checking that the variant and
    version are correct for UUID v4.

SEE ALSO
    *   UUID::URandom - A portable UUID v4 generator using Crypt::URandom.

    *   UUID::Tiny - Creates version 1, 3, 4 and 5 UUIDs (not
        cryptographically strong due to rand() usage).

AUTHOR
    CV-Library <cvlibrary@cpan.org>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2019 by CV-Library.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.