sj-i/php-fuse

PHP FFI bindings for FUSE


README

Minimum PHP version: 7.4.0 Packagist Github Actions Scrutinizer Code Quality Coverage Status Psalm coverage stability-experimental

PHP FFI bindings for libfuse.

You can write your own filesystems in PHP.

Installation

composer require sj-i/php-fuse

Requirements

  • PHP 7.4+ (NTS / ZTS)
  • 64bit Linux x86_64
  • FFI extension
  • libfuse(currently based on 2.9.9)

Documentation

  • Currently, no documentation is provided. :-(
  • If you want to write a filesystem in PHP by using this library, see examples in this repository and the libfuse API documentation for now.

Todo

  • bump libfuse to 3.9
  • add more tests
  • add documentation
  • support multithreading

LICENSE

  • MIT

Example

mkdir /tmp/example
php example/dummy_file.php
$ ls -la /tmp/example/
total 180
drwxr-xr-x  2 sji  sji       0  1月  1  1970 .
drwxrwxrwt 25 root root 180224 12月 28 07:14 ..
-rwxrwxrwx  1 sji  sji      20  1月  1  1970 example
$ cat /tmp/example/example
hello FUSE from PHP
$ umount /tmp/example