{"_id":"@131/fuse-bindings","_rev":"2-2c107c859f080efb91c3c744a5c17dac","name":"@131/fuse-bindings","dist-tags":{"latest":"2.11.1"},"versions":{"2.11.0":{"name":"@131/fuse-bindings","version":"2.11.0","description":"Fully maintained fuse bindings for Node that aims to cover the entire FUSE api","main":"index.js","scripts":{"install":"prebuild --install","test":"standard && tape test/*.js","rebuild":"prebuild --compile","prebuild":"prebuild --all --strip --verbose"},"gypfile":true,"dependencies":{"bindings":"^1.2.1","debug":"^2.6.9","nan":"^2.3.5","prebuild":"^4.2.2","xtend":"^4.0.1"},"devDependencies":{"concat-stream":"^1.4.7","standard":"^7.1.2","tape":"^4.6.0"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/fuse-bindings.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/fuse-bindings/issues"},"homepage":"https://github.com/mafintosh/fuse-bindings","gitHead":"72c1feb04cb8c4fb9aaff36ee4ad31313372c863","_id":"@131/fuse-bindings@2.11.0","_shasum":"c57fae35ee441e268e0cbf83dcfc06931a1e1bcb","_from":".","_npmVersion":"2.15.11","_nodeVersion":"8.10.0","_npmUser":{"name":"131","email":"131.js@cloudyks.org"},"dist":{"shasum":"c57fae35ee441e268e0cbf83dcfc06931a1e1bcb","tarball":"https://registry.npmjs.org/@131/fuse-bindings/-/fuse-bindings-2.11.0.tgz","integrity":"sha512-EYWgicNG6pisaToxyNm0zdzBxoqfz35nyI0wbQ8w0ulEQShUJqTgnPZg+sLPWm2aPAC6OI+eAVYs2If6kmmUSg==","fileCount":39,"unpackedSize":5524653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgd4kCRA9TVsSAnZWagAAKhcP/Aj29DLHzt4DXXIPLZ5W\nthHVH0aA43cm8wnUU1Vvym4fiNPZDqGqXwEiFGHnXvT5BAT+kNkscszJY5Ly\ngaQK76q1qH2wXEc0i5hhGcBgjzs/ww9kuVvZhPFpcXozZA/mnRepEHm43DXn\nWPN057qw3h9+YKorDj/JGufxlxyiCC7JUgluuEah8ovmIxmgnyd8BzsTGmjQ\nsFRHY8aoyE0b1iM1ZEfXswt74+3cMp+hh13eKRYRdcV1pGZfCuxOfmqsbWvi\nud0o2t3JC5Af168z7jH/QxBvphOsmz6RsVy9T4+KcoXdjYFEkW7oTbZ7HiH3\nl78DMQdOe0sr5f3DmgyxjLbynFrWOsPpdUevcGxdadA5uhTPSgGGfdrFuy8v\nf+M2bdqVEHh/xTm/tMd0vWSk3opD/IEyNpPBmZeNjQF1HpGWNReieEJxYhsT\nhM1x8AHDl3Kr+xbI4QbWQ7QEY0C6mWkR7eXj8riZCyGAo+FEOraARXl+5dM8\nO0MI/8PVsy4FnHxKZ/17HCECY+O9QZyIkzuPJRh0x+i4ZhjmaqKRI744VT2O\n0L0orKlxvkSFJn2sZDaoKLuG8eR2f3wUtlZU5vntYNkKfZc0j0zhTfQItuoC\n7RG/AhHf06pxlHdPFAxOGmdRjw1vu28nOlZ54GgPbyOfTNnJTTB0vxXcA9gR\n3Cgi\r\n=9R95\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/7JyQM4s+E4WXqt6D+eO5PydSdvmf0+65JN1R1ANuWAiBGfptJV4KrG+P+xa5bwWMA9DswhZuEnl+mpWvt35HKBA=="}]},"maintainers":[{"name":"131","email":"131.js@cloudyks.org"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fuse-bindings_2.11.0_1568792099777_0.7114129021606572"},"_hasShrinkwrap":false},"2.11.1":{"name":"@131/fuse-bindings","version":"2.11.1","description":"Fully maintained fuse bindings for Node that aims to cover the entire FUSE api","main":"index.js","scripts":{"install":"prebuild --install","test":"standard && tape test/*.js","rebuild":"prebuild --compile","prebuild":"prebuild --all --strip --verbose"},"gypfile":true,"dependencies":{"bindings":"^1.2.1","debug":"^2.6.9","nan":"^2.3.5","prebuild":"^4.2.2","xtend":"^4.0.1"},"devDependencies":{"concat-stream":"^1.4.7","standard":"^7.1.2","tape":"^4.6.0"},"repository":{"type":"git","url":"git+https://github.com/mafintosh/fuse-bindings.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"license":"MIT","bugs":{"url":"https://github.com/mafintosh/fuse-bindings/issues"},"homepage":"https://github.com/mafintosh/fuse-bindings","gitHead":"590075d92a6b550a260d4f82fd6a93c55f9508ca","_id":"@131/fuse-bindings@2.11.1","_shasum":"e4d27f31251e9a5ebc6a70ae62324e6e32bafba4","_from":".","_npmVersion":"2.15.11","_nodeVersion":"12.22.7","_npmUser":{"name":"131","email":"131.code@leurent.email"},"dist":{"shasum":"e4d27f31251e9a5ebc6a70ae62324e6e32bafba4","tarball":"https://registry.npmjs.org/@131/fuse-bindings/-/fuse-bindings-2.11.1.tgz","integrity":"sha512-GLyB262MMU2447F1jkuMrz0eNObo6lAz6UvdJ9V3sOs9BqIy3HyK4Y8IZGjrcOjl7/XTBUJYR6+gWnb7lArbsw==","fileCount":18,"unpackedSize":79661,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1Y90EwFWg611E+lo3McJQPc3Wi5RgYnW1UvjPhntBWAiEAwiwnHQJXf3AYK5Kx/18pgY8+fWhrxRbCrxkojP1XQ3U="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJidrEpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpr6RAAk6U0N97LpocekOOf6TgWOgaVRIx2sCWPfeOmQrAkfg/LclSf\r\neHgdVKVa9Y1NhjXAZSaxoZNGPNiv5E/ZHnF6g3ApxKZqC/9xxnOBJhvdtbmo\r\nliZyOWj4Dx/RLWneh2Vwedgo/7JoMyLIX5dlnTaLV/RAqtvj8LnMhzfky33y\r\n4qp6pKUNKgoyHwFgOPY1ShSjrMueCW75wwftLI0KyMRWtD1+IWLaoQAw2fQE\r\n61U/f9+yWZjZolw/rQWlUIspVsx+IxCzJlK6pKUNTRjnkPh7twiwQpwtMgky\r\nW8QVbcctIcl9HAnhGIsZH/O+c/a24S0078FEiXJS2EOP1plRCpKPl+x5c2B6\r\nJIJiCkeQaqp9+m/SSR22uxGVtBgP8jSNWMIaEV0h6a4g5Bh4u7cxRsSNb+IC\r\ngNnOJlJL1lYoIJslks9JZ2eFE8ZHVsp0ZIxePz1l/XyDH12gyt8Klm4ZHhRF\r\nPXUKliY/2WdyIL/4/nzryE9TOOyiRKJACzzXYh+JRpY8qO6K9ZZcpHX7gc1m\r\nwv/sv2CazxcB7ZZ5Q04cIb/Do22XXHUe9SsZdeT33MzWlHP7sW1Onw72LBYU\r\nHE2DZIsBSKw21IOzwMSKBfqumXp0Ij3FjnsY2Ni4QVSve+LZrSn2ELGoaXUr\r\n8qSzBZml2sXpabKevg7xhUjq+wtZ4U8BCC8=\r\n=sCxU\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"131","email":"131.code@leurent.email"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fuse-bindings_2.11.1_1651945769524_0.04403986347488731"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-18T07:34:59.549Z","2.11.0":"2019-09-18T07:34:59.937Z","modified":"2022-05-07T17:49:29.834Z","2.11.1":"2022-05-07T17:49:29.746Z"},"maintainers":[{"name":"131","email":"131.code@leurent.email"}],"description":"Fully maintained fuse bindings for Node that aims to cover the entire FUSE api","homepage":"https://github.com/mafintosh/fuse-bindings","repository":{"type":"git","url":"git+https://github.com/mafintosh/fuse-bindings.git"},"author":{"name":"Mathias Buus","url":"@mafintosh"},"bugs":{"url":"https://github.com/mafintosh/fuse-bindings/issues"},"license":"MIT","readme":"# fuse-bindings\n\nFully maintained fuse bindings for Node that aims to cover the entire FUSE api\n\n```\nnpm install fuse-bindings\n```\n\nCompared to [fuse4js](https://github.com/bcle/fuse4js) these bindings cover almost the entire FUSE api (except for locking) and doesn't do\nany buffer copys in read/write. It also supports unmount and mouting of multiple fuse drives.\n\n## Requirements\n\nYou need to have FUSE installed (or Dokany on Windows)\n\n* On Linux/Ubuntu `sudo apt-get install libfuse-dev`\n* On OSX\n  * if you use Brew, install [OSXFuse](http://osxfuse.github.com/) and `brew install pkg-config`\n  * if you use MacPorts, `sudo port install osxfuse +devel`\n* On Windows install [Dokany](https://github.com/dokan-dev/dokany)\n\n### Windows\n**WARNING**: Dokany is still not quite stable. It can cause BSODs. Be careful.\n\n~~Using this on Windows is slightly more complicated. You need to install [Dokany](https://github.com/dokan-dev/dokany) (for `dokanfuse.lib`, `dokanctl.exe`, driver and service) **and** clone its repo (for the headers).~~\n\n~~Once the Dokany repo is cloned, you also need to set environment variable `DOKAN_INSTALL_DIR` to the path to `DokenLibrary` of your Dokany installaton, and `DOKAN_FUSE_INCLUDE` to the path to `*dokany repo*\\dokan_fuse\\include`.~~\n\n**EDIT**: Dokany now includes needed headers and sets proper environment variables when installing! Just install Dokany and this module should install and work just fine! (Drop an issue otherwise)\n\n## Usage\n\nTry creating an empty folder called `mnt` and run the below example\n\n``` js\nvar fuse = require('fuse-bindings')\n\nfuse.mount('./mnt', {\n  readdir: function (path, cb) {\n    console.log('readdir(%s)', path)\n    if (path === '/') return cb(0, ['test'])\n    cb(0)\n  },\n  getattr: function (path, cb) {\n    console.log('getattr(%s)', path)\n    if (path === '/') {\n      cb(0, {\n        mtime: new Date(),\n        atime: new Date(),\n        ctime: new Date(),\n        size: 100,\n        mode: 16877,\n        uid: process.getuid(),\n        gid: process.getgid()\n      })\n      return\n    }\n\n    if (path === '/test') {\n      cb(0, {\n        mtime: new Date(),\n        atime: new Date(),\n        ctime: new Date(),\n        size: 12,\n        mode: 33188,\n        uid: process.getuid(),\n        gid: process.getgid()\n      })\n      return\n    }\n\n    cb(fuse.ENOENT)\n  },\n  open: function (path, flags, cb) {\n    console.log('open(%s, %d)', path, flags)\n    cb(0, 42) // 42 is an fd\n  },\n  read: function (path, fd, buf, len, pos, cb) {\n    console.log('read(%s, %d, %d, %d)', path, fd, len, pos)\n    var str = 'hello world\\n'.slice(pos, pos + len)\n    if (!str) return cb(0)\n    buf.write(str)\n    return cb(str.length)\n  }\n})\n\nprocess.on('SIGINT', function () {\n  fuse.unmount('./mnt', function (err) {\n    if (err) throw err\n    \n    process.exit()\n  })\n})\n```\n\n## API\n\n#### `fuse.mount(mnt, ops, [cb])`\n\nMount a new filesystem on `mnt`.\nPass the FUSE operations you want to support as the `ops` argument.\n\n#### `fuse.unmount(mnt, [cb])`\n\nUnmount a filesystem\n\n#### `fuse.context()`\n\nReturns the current fuse context (pid, uid, gid).\nMust be called inside a fuse callback.\n\n## Mount options\n\n#### `ops.options`\n\nSet [mount options](http://blog.woralelandia.com/2012/07/16/fuse-mount-options/)\n\n``` js\nops.options = ['direct_io'] // set the direct_io option\n```\n\n#### `ops.displayFolder`\n\nSet to `true` to make OSX display a folder icon and the folder name as the mount point in finder\n\n#### `ops.force`\n\nSet to `true` to force mount the filesystem (will do an unmount first)\n\n## FUSE operations\n\nMost of the [FUSE api](http://fuse.sourceforge.net/doxygen/structfuse__operations.html) is supported. In general the callback for each op should be called with `cb(returnCode, [value])` where the return code is a number (`0` for OK and `< 0` for errors). See below for a list of POSIX error codes.\n\n#### `ops.init(cb)`\n\nCalled on filesystem init.\n\n#### `ops.access(path, mode, cb)`\n\nCalled before the filesystem accessed a file\n\n#### `ops.statfs(path, cb)`\n\nCalled when the filesystem is being stat'ed. Accepts a fs stat object after the return code in the callback.\n\n``` js\nops.statfs = function (path, cb) {\n  cb(0, {\n    bsize: 1000000,\n    frsize: 1000000,\n    blocks: 1000000,\n    bfree: 1000000,\n    bavail: 1000000,\n    files: 1000000,\n    ffree: 1000000,\n    favail: 1000000,\n    fsid: 1000000,\n    flag: 1000000,\n    namemax: 1000000\n  })\n}\n```\n\n#### `ops.getattr(path, cb)`\n\nCalled when a path is being stat'ed. Accepts a stat object (similar to the one returned in `fs.stat(path, cb)`) after the return code in the callback.\n\n``` js\nops.getattr = function (path, cb) {\n  cb(0, {\n    mtime: new Date(),\n    atime: new Date(),\n    ctime: new Date(),\n    size: 100,\n    mode: 16877,\n    uid: process.getuid(),\n    gid: process.getgid()\n  })\n}\n```\n\n#### `ops.fgetattr(path, fd, cb)`\n\nSame as above but is called when someone stats a file descriptor\n\n#### `ops.flush(path, fd, cb)`\n\nCalled when a file descriptor is being flushed\n\n#### `ops.fsync(path, fd, datasync, cb)`\n\nCalled when a file descriptor is being fsync'ed.\n\n#### `ops.fsyncdir(path, fd, datasync, cb)`\n\nSame as above but on a directory\n\n#### `ops.readdir(path, cb)`\n\nCalled when a directory is being listed. Accepts an array of file/directory names after the return code in the callback\n\n``` js\nops.readdir = function (path, cb) {\n  cb(0, ['file-1.txt', 'dir'])\n}\n```\n\n#### `ops.truncate(path, size, cb)`\n\nCalled when a path is being truncated to a specific size\n\n#### `ops.ftruncate(path, fd, size, cb)`\n\nSame as above but on a file descriptor\n\n#### `ops.readlink(path, cb)`\n\nCalled when a symlink is being resolved. Accepts a pathname (that the link should resolve to) after the return code in the callback\n\n``` js\nops.readlink = function (path, cb) {\n  cb(null, 'file.txt') // make link point to file.txt\n}\n```\n\n#### `ops.chown(path, uid, gid, cb)`\n\nCalled when ownership of a path is being changed\n\n#### `ops.chmod(path, mode, cb)`\n\nCalled when the mode of a path is being changed\n\n#### `ops.mknod(path, mode, dev, cb)`\n\nCalled when the a new device file is being made.\n\n#### `ops.setxattr(path, name, buffer, length, offset, flags, cb)`\n\nCalled when extended attributes is being set (see the extended docs for your platform).\nCurrently you can read the attribute value being set in `buffer` at `offset`.\n\n#### `ops.getxattr(path, name, buffer, length, offset, cb)`\n\nCalled when extended attributes is being read.\nCurrently you have to write the result to the provided `buffer` at `offset`.\n\n#### `ops.listxattr(path, buffer, length, cb)`\n\nCalled when extended attributes of a path are being listed.\n`buffer` should be filled with the extended attribute names as *null-terminated* strings, one after the other, up to a total of `length` in length. (`ERANGE` should be passed to the callback if `length` is insufficient.)\nThe size of buffer required to hold all the names should be passed to the callback either on success, or if the supplied `length` was zero.\n\n#### `ops.removexattr(path, name, cb)`\n\nCalled when an extended attribute is being removed.\n\n#### `ops.open(path, flags, cb)`\n\nCalled when a path is being opened. `flags` in a number containing the permissions being requested. Accepts a file descriptor after the return code in the callback.\n\n``` js\nvar toFlag = function(flags) {\n  flags = flags & 3\n  if (flags === 0) return 'r'\n  if (flags === 1) return 'w'\n  return 'r+'\n}\n\nops.open = function (path, flags, cb) {\n  var flag = toFlag(flags) // convert flags to a node style string\n  ...\n  cb(0, 42) // 42 is a file descriptor\n}\n```\n\n#### `ops.opendir(path, flags, cb)`\n\nSame as above but for directories\n\n#### `ops.read(path, fd, buffer, length, position, cb)`\n\nCalled when contents of a file is being read. You should write the result of the read to the `buffer` and return the number of bytes written as the first argument in the callback.\nIf no bytes were written (read is complete) return 0 in the callback.\n\n``` js\nvar data = new Buffer('hello world')\n\nops.read = function (path, fd, buffer, length, position, cb) {\n  if (position >= data.length) return cb(0) // done\n  var part = data.slice(position, position + length)\n  part.copy(buffer) // write the result of the read to the result buffer\n  cb(part.length) // return the number of bytes read\n}\n```\n\n#### `ops.write(path, fd, buffer, length, position, cb)`\n\nCalled when a file is being written to. You can get the data being written in `buffer` and you should return the number of bytes written in the callback as the first argument.\n\n``` js\nops.write = function (path, fd, buffer, length, position, cb) {\n  console.log('writing', buffer.slice(0, length))\n  cb(length) // we handled all the data\n}\n```\n\n#### `ops.release(path, fd, cb)`\n\nCalled when a file descriptor is being released. Happens when a read/write is done etc.\n\n#### `ops.releasedir(path, fd, cb)`\n\nSame as above but for directories\n\n#### `ops.create(path, mode, cb)`\n\nCalled when a new file is being opened.\n\n#### `ops.utimens(path, atime, mtime, cb)`\n\nCalled when the atime/mtime of a file is being changed.\n\n#### `ops.unlink(path, cb)`\n\nCalled when a file is being unlinked.\n\n#### `ops.rename(src, dest, cb)`\n\nCalled when a file is being renamed.\n\n#### `ops.link(src, dest, cb)`\n\nCalled when a new link is created.\n\n#### `ops.symlink(src, dest, cb)`\n\nCalled when a new symlink is created\n\n#### `ops.mkdir(path, mode, cb)`\n\nCalled when a new directory is being created\n\n#### `ops.rmdir(path, cb)`\n\nCalled when a directory is being removed\n\n#### `ops.destroy(cb)`\n\nBoth `read` and `write` passes the underlying fuse buffer without copying them to be as fast as possible.\n\n## Error codes\n\nThe available error codes are exposes as well as properties. These include\n\n* `fuse.EPERM === -1`\n* `fuse.ENOENT === -2`\n* `fuse.ESRCH === -3`\n* `fuse.EINTR === -4`\n* `fuse.EIO === -5`\n* `fuse.ENXIO === -6`\n* `fuse.E2BIG === -7`\n* `fuse.ENOEXEC === -8`\n* `fuse.EBADF === -9`\n* `fuse.ECHILD === -10`\n* `fuse.EAGAIN === -11`\n* `fuse.ENOMEM === -12`\n* `fuse.EACCES === -13`\n* `fuse.EFAULT === -14`\n* `fuse.ENOTBLK === -15`\n* `fuse.EBUSY === -16`\n* `fuse.EEXIST === -17`\n* `fuse.EXDEV === -18`\n* `fuse.ENODEV === -19`\n* `fuse.ENOTDIR === -20`\n* `fuse.EISDIR === -21`\n* `fuse.EINVAL === -22`\n* `fuse.ENFILE === -23`\n* `fuse.EMFILE === -24`\n* `fuse.ENOTTY === -25`\n* `fuse.ETXTBSY === -26`\n* `fuse.EFBIG === -27`\n* `fuse.ENOSPC === -28`\n* `fuse.ESPIPE === -29`\n* `fuse.EROFS === -30`\n* `fuse.EMLINK === -31`\n* `fuse.EPIPE === -32`\n* `fuse.EDOM === -33`\n* `fuse.ERANGE === -34`\n* `fuse.EDEADLK === -35`\n* `fuse.ENAMETOOLONG === -36`\n* `fuse.ENOLCK === -37`\n* `fuse.ENOSYS === -38`\n* `fuse.ENOTEMPTY === -39`\n* `fuse.ELOOP === -40`\n* `fuse.EWOULDBLOCK === -11`\n* `fuse.ENOMSG === -42`\n* `fuse.EIDRM === -43`\n* `fuse.ECHRNG === -44`\n* `fuse.EL2NSYNC === -45`\n* `fuse.EL3HLT === -46`\n* `fuse.EL3RST === -47`\n* `fuse.ELNRNG === -48`\n* `fuse.EUNATCH === -49`\n* `fuse.ENOCSI === -50`\n* `fuse.EL2HLT === -51`\n* `fuse.EBADE === -52`\n* `fuse.EBADR === -53`\n* `fuse.EXFULL === -54`\n* `fuse.ENOANO === -55`\n* `fuse.EBADRQC === -56`\n* `fuse.EBADSLT === -57`\n* `fuse.EDEADLOCK === -35`\n* `fuse.EBFONT === -59`\n* `fuse.ENOSTR === -60`\n* `fuse.ENODATA === -61`\n* `fuse.ETIME === -62`\n* `fuse.ENOSR === -63`\n* `fuse.ENONET === -64`\n* `fuse.ENOPKG === -65`\n* `fuse.EREMOTE === -66`\n* `fuse.ENOLINK === -67`\n* `fuse.EADV === -68`\n* `fuse.ESRMNT === -69`\n* `fuse.ECOMM === -70`\n* `fuse.EPROTO === -71`\n* `fuse.EMULTIHOP === -72`\n* `fuse.EDOTDOT === -73`\n* `fuse.EBADMSG === -74`\n* `fuse.EOVERFLOW === -75`\n* `fuse.ENOTUNIQ === -76`\n* `fuse.EBADFD === -77`\n* `fuse.EREMCHG === -78`\n* `fuse.ELIBACC === -79`\n* `fuse.ELIBBAD === -80`\n* `fuse.ELIBSCN === -81`\n* `fuse.ELIBMAX === -82`\n* `fuse.ELIBEXEC === -83`\n* `fuse.EILSEQ === -84`\n* `fuse.ERESTART === -85`\n* `fuse.ESTRPIPE === -86`\n* `fuse.EUSERS === -87`\n* `fuse.ENOTSOCK === -88`\n* `fuse.EDESTADDRREQ === -89`\n* `fuse.EMSGSIZE === -90`\n* `fuse.EPROTOTYPE === -91`\n* `fuse.ENOPROTOOPT === -92`\n* `fuse.EPROTONOSUPPORT === -93`\n* `fuse.ESOCKTNOSUPPORT === -94`\n* `fuse.EOPNOTSUPP === -95`\n* `fuse.EPFNOSUPPORT === -96`\n* `fuse.EAFNOSUPPORT === -97`\n* `fuse.EADDRINUSE === -98`\n* `fuse.EADDRNOTAVAIL === -99`\n* `fuse.ENETDOWN === -100`\n* `fuse.ENETUNREACH === -101`\n* `fuse.ENETRESET === -102`\n* `fuse.ECONNABORTED === -103`\n* `fuse.ECONNRESET === -104`\n* `fuse.ENOBUFS === -105`\n* `fuse.EISCONN === -106`\n* `fuse.ENOTCONN === -107`\n* `fuse.ESHUTDOWN === -108`\n* `fuse.ETOOMANYREFS === -109`\n* `fuse.ETIMEDOUT === -110`\n* `fuse.ECONNREFUSED === -111`\n* `fuse.EHOSTDOWN === -112`\n* `fuse.EHOSTUNREACH === -113`\n* `fuse.EALREADY === -114`\n* `fuse.EINPROGRESS === -115`\n* `fuse.ESTALE === -116`\n* `fuse.EUCLEAN === -117`\n* `fuse.ENOTNAM === -118`\n* `fuse.ENAVAIL === -119`\n* `fuse.EISNAM === -120`\n* `fuse.EREMOTEIO === -121`\n* `fuse.EDQUOT === -122`\n* `fuse.ENOMEDIUM === -123`\n* `fuse.EMEDIUMTYPE === -124`\n\n## License\n\nMIT\n","readmeFilename":"README.md"}