php-fuse icon indicating copy to clipboard operation
php-fuse copied to clipboard

PHP FFI bindings for libfuse

php-fuse

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