---
name: "CHI::Driver::FastMmap"
section: "3pm"
platform: "linux"
package: "libchi-perl"
version: "0.61-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CHI::Driver::FastMmap"
---

# CHI::Driver::FastMmap(3pm)

Persistent interprocess cache via mmap'ed files

## NAME

CHI::Driver::FastMmap - Persistent interprocess cache via mmap'ed files

## VERSION

version 0.61

## SYNOPSIS

```
    use CHI;
    my $cache = CHI->new(
        driver     => 'FastMmap',
        root_dir   => '/path/to/cache/root',
        cache_size => '1m'
    );
```

## DESCRIPTION

This cache driver uses Cache::FastMmap to store data in an mmap'ed file. It is very fast, and can be used to share data between processes on a single host, though not between hosts.

To support namespaces, this driver takes a directory parameter rather than a file, and creates one Cache::FastMMap file for each namespace.

Because CHI handles serialization automatically, we pass the `"serializer"` flag as ''; and to conform to the CHI API, we pass `"unlink_on_exit"` as 0, so that all cache files are permanent.

## REQUIREMENTS

You will need to install Cache::FastMmap from CPAN to use this driver.

## CONSTRUCTOR OPTIONS

- root\_dir

  Path to the directory that will contain the share files, one per namespace. Defaults to a directory called 'chi-driver-fastmmap' under the OS default temp directory (e.g. '/tmp' on UNIX).

- dir\_create\_mode

  Permissions mode to use when creating directories. Defaults to 0775.

Any other constructor options not recognized by CHI are passed along to Cache::FastMmap-\>new.

## METHODS

- fm\_cache

  Returns a handle to the underlying Cache::FastMmap object. You can use this to call FastMmap-specific methods that are not supported by the general API, e.g.

  ```
      $self->fm_cache->get_and_set("key", sub { ... });
  ```

## SEE ALSO

CHI

## AUTHOR

Jonathan Swartz \<swartz@pobox.com\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Jonathan Swartz.

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