Skip to content

calcinai/php-mmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

php-mmap

This library is a lightweight implementation of c's mmap. In previous versions of PHP, fopen used mmap where possible, but it looks like this was dropped in 5.3. The actual mapping is delegated to a python subprocess for compatibility and compilability .

This started as a component of another project, but it made more sense for it to be stand alone. It is synchronous in operation, but if you're reading large amounts of data it can be done piece by piece.

I have tried to make it functionally equivalent to c's implementation, but it's not quite complete due to some limitations.

I have also written a compatible extension that you can compile and install as a faster drop-in replacement

Setup

Using composer:

  "require": {
  	"calcinai/php-mmap": "^0.1"
  }

Usage

Via a URI (of sorts)

    $mmap = fopen('mmap:///dev/mem:1024?offset=0', 'rw');

Via wrapper method

    $mmap = mmap_open('/dev/mem', 1024, 0);

You can use fseek(), fread() and fwrite() on the stream. If you have a use for others, let me know.