[![license](https://img.shields.io/pypi/l/refuse.svg?style=flat-square "Internet Systems Consortium License")](https://github.com/pleiszenburg/refuse/blob/master/LICENSE) [![status](https://img.shields.io/pypi/status/refuse.svg?style=flat-square "Project Development Status")](https://github.com/pleiszenburg/refuse/milestone/3) [![pypi_version](https://img.shields.io/pypi/v/refuse.svg?style=flat-square "Project Development Status")](https://pypi.python.org/pypi/refuse) [![pypi_versions](https://img.shields.io/pypi/pyversions/refuse.svg?style=flat-square "Available on PyPi - the Python Package Index")](https://pypi.python.org/pypi/refuse)
![refuse](http://www.pleiszenburg.de/refuse_logo.png)
## Synopsis
`refuse` is a Python module implemented using [`ctypes`](https://docs.python.org/3/library/ctypes.html) that provides a simple cross-platform interface to:
- [libfuse](https://github.com/libfuse/libfuse)
- [FUSE for macOS](https://osxfuse.github.io/)
- [WinFsp](https://github.com/billziss-gh/winfsp)
`refuse` originated as a fork of [`fusepy`](https://github.com/fusepy/fusepy). This fork will break with its origins in (at least) the following aspects:
- [x] Dropping Python 2 support
- [ ] Dropping the monolithic single-file-design
- [ ] Adding ``libfuse3`` support
- [ ] Marking ``libfuse2`` support as deprecated
- [ ] A test suite
**If you have a pending pull request against `fusepy` that you would like to see included into `refuse` please open an issue here.**
**If you want to contribute to `refuse`, please have a look at the [contributing guidelines](https://github.com/pleiszenburg/refuse/blob/develop/CONTRIBUTING.md).**
## Project status
THIS PROJECT HAS **ALPHA** STATUS.
The high level API has been tested through [`LoggedFS-python`](https://github.com/pleiszenburg/loggedfs-python) with [`pjdfstest`](https://github.com/pjd/pjdfstest/) and [`fsx`](https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/fs/fsx-linux/fsx-linux.c) on x86_64 Linux only, but not in all possible modes of operation. The low level API is completely untested at this point.
## Installation
`refuse` requires `libfuse` 2.8 or 2.9 (highly recommended), `FUSE for macOS` or `WinFsp`. The [`master` branch](https://github.com/pleiszenburg/refuse/tree/master) of its git repository is always kept at the latest *preview release*. It should be "sort of stable" (still ALPHA). Development happens in the [`develop` branch](https://github.com/pleiszenburg/refuse/tree/develop).
You can install the *preview releases* from PyPI:
```bash
pip install refuse
```
You can alternatively also install the current `HEAD`, most likely very unstable:
```bash
pip install git+https://github.com/pleiszenburgrefuse.git@develop
```
`refuse` (theoretically) runs on:
<table>
<tr>
<th>OS</th><th colspan="2">API</th><th colspan="6">arch</th>
</tr>
<tr>
<th></th><th>level</th><th>version</th>
<th>i386</th><th>x86_64</th><th>PPC</th><th>PPC64</th><th>arm64</th><th>MIPS</th>
</tr>
<tr>
<td rowspan="4">Linux</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="4">Mac OS X</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td>yes</td><td>yes</td><td></td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td></td><td></td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>yes</td><td>yes</td><td>yes</td><td>yes</td><td></td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td></td><td></td>
</tr>
<tr>
<td rowspan="4">FreeBSD</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>yes</td><td>yes</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="4">OpenBSD</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>
</tr>
<tr>
<td rowspan="4">Windows</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td rowspan="4">Windows/Cygwin</td><td rowspan="2">high</td><td>2</td>
<td>yes</td><td>yes</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td rowspan="2">low</td><td>2</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
<tr>
<td>3</td>
<td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>
</tr>
</table>
## Porting a project from `fusepy` to `refuse`
[See documentation](https://github.com/pleiszenburg/refuse/blob/master/docs/porting.md).
## Miscellaneous
- [Authors](https://github.com/pleiszenburg/refuse/blob/master/AUTHORS.md) (credit where credit is due)
- [Change log (current)](https://github.com/pleiszenburg/refuse/blob/develop/CHANGES.md) (changes in development branch since last release)
- [Change log (past)](https://github.com/pleiszenburg/refuse/blob/master/CHANGES.md) (release history)
- [Contributing](https://github.com/pleiszenburg/refuse/blob/develop/CONTRIBUTING.md) (**Contributions are highly welcomed!**)
- [Documentation](https://github.com/pleiszenburg/refuse/tree/master/docs) (mostly notes at this point)
- [License](https://github.com/pleiszenburg/refuse/blob/master/LICENSE) (**ISCL**)
Raw data
{
"_id": null,
"home_page": "https://github.com/pleiszenburg/refuse",
"name": "refuse",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "fuse,libfuse",
"author": "Sebastian M. Ernst",
"author_email": "ernst@pleiszenburg.de",
"download_url": "https://files.pythonhosted.org/packages/07/31/a9ca9d51a5f43c409ca14c6a9da0b6ff21b87786bb058df9cfb8e6963003/refuse-0.0.4.tar.gz",
"platform": "",
"description": "[![license](https://img.shields.io/pypi/l/refuse.svg?style=flat-square \"Internet Systems Consortium License\")](https://github.com/pleiszenburg/refuse/blob/master/LICENSE) [![status](https://img.shields.io/pypi/status/refuse.svg?style=flat-square \"Project Development Status\")](https://github.com/pleiszenburg/refuse/milestone/3) [![pypi_version](https://img.shields.io/pypi/v/refuse.svg?style=flat-square \"Project Development Status\")](https://pypi.python.org/pypi/refuse) [![pypi_versions](https://img.shields.io/pypi/pyversions/refuse.svg?style=flat-square \"Available on PyPi - the Python Package Index\")](https://pypi.python.org/pypi/refuse)\n\n![refuse](http://www.pleiszenburg.de/refuse_logo.png)\n\n## Synopsis\n\n`refuse` is a Python module implemented using [`ctypes`](https://docs.python.org/3/library/ctypes.html) that provides a simple cross-platform interface to:\n\n- [libfuse](https://github.com/libfuse/libfuse)\n- [FUSE for macOS](https://osxfuse.github.io/)\n- [WinFsp](https://github.com/billziss-gh/winfsp)\n\n`refuse` originated as a fork of [`fusepy`](https://github.com/fusepy/fusepy). This fork will break with its origins in (at least) the following aspects:\n\n- [x] Dropping Python 2 support\n- [ ] Dropping the monolithic single-file-design\n- [ ] Adding ``libfuse3`` support\n- [ ] Marking ``libfuse2`` support as deprecated\n- [ ] A test suite\n\n**If you have a pending pull request against `fusepy` that you would like to see included into `refuse` please open an issue here.**\n\n**If you want to contribute to `refuse`, please have a look at the [contributing guidelines](https://github.com/pleiszenburg/refuse/blob/develop/CONTRIBUTING.md).**\n\n## Project status\n\nTHIS PROJECT HAS **ALPHA** STATUS.\n\nThe high level API has been tested through [`LoggedFS-python`](https://github.com/pleiszenburg/loggedfs-python) with [`pjdfstest`](https://github.com/pjd/pjdfstest/) and [`fsx`](https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/fs/fsx-linux/fsx-linux.c) on x86_64 Linux only, but not in all possible modes of operation. The low level API is completely untested at this point.\n\n## Installation\n\n`refuse` requires `libfuse` 2.8 or 2.9 (highly recommended), `FUSE for macOS` or `WinFsp`. The [`master` branch](https://github.com/pleiszenburg/refuse/tree/master) of its git repository is always kept at the latest *preview release*. It should be \"sort of stable\" (still ALPHA). Development happens in the [`develop` branch](https://github.com/pleiszenburg/refuse/tree/develop).\n\nYou can install the *preview releases* from PyPI:\n\n```bash\npip install refuse\n```\n\nYou can alternatively also install the current `HEAD`, most likely very unstable:\n\n```bash\npip install git+https://github.com/pleiszenburgrefuse.git@develop\n```\n\n`refuse` (theoretically) runs on:\n\n<table>\n <tr>\n <th>OS</th><th colspan=\"2\">API</th><th colspan=\"6\">arch</th>\n </tr>\n <tr>\n <th></th><th>level</th><th>version</th>\n <th>i386</th><th>x86_64</th><th>PPC</th><th>PPC64</th><th>arm64</th><th>MIPS</th>\n </tr>\n <tr>\n <td rowspan=\"4\">Linux</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"4\">Mac OS X</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td>yes</td><td>yes</td><td></td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td></td><td></td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>yes</td><td>yes</td><td>yes</td><td>yes</td><td></td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td></td><td></td>\n </tr>\n <tr>\n <td rowspan=\"4\">FreeBSD</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>yes</td><td>yes</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"4\">OpenBSD</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td><td>yes</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td>\n </tr>\n <tr>\n <td rowspan=\"4\">Windows</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td rowspan=\"4\">Windows/Cygwin</td><td rowspan=\"2\">high</td><td>2</td>\n <td>yes</td><td>yes</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td rowspan=\"2\">low</td><td>2</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n <tr>\n <td>3</td>\n <td>no</td><td>no</td><td></td><td></td><td>no</td><td></td>\n </tr>\n</table>\n\n## Porting a project from `fusepy` to `refuse`\n\n[See documentation](https://github.com/pleiszenburg/refuse/blob/master/docs/porting.md).\n\n## Miscellaneous\n\n- [Authors](https://github.com/pleiszenburg/refuse/blob/master/AUTHORS.md) (credit where credit is due)\n- [Change log (current)](https://github.com/pleiszenburg/refuse/blob/develop/CHANGES.md) (changes in development branch since last release)\n- [Change log (past)](https://github.com/pleiszenburg/refuse/blob/master/CHANGES.md) (release history)\n- [Contributing](https://github.com/pleiszenburg/refuse/blob/develop/CONTRIBUTING.md) (**Contributions are highly welcomed!**)\n- [Documentation](https://github.com/pleiszenburg/refuse/tree/master/docs) (mostly notes at this point)\n- [License](https://github.com/pleiszenburg/refuse/blob/master/LICENSE) (**ISCL**)\n\n\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "Simple cross-plattform ctypes bindings for libfuse / FUSE for macOS / WinFsp",
"version": "0.0.4",
"project_urls": {
"Download": "https://github.com/pleiszenburg/refuse/archive/v0.0.4.tar.gz",
"Homepage": "https://github.com/pleiszenburg/refuse"
},
"split_keywords": [
"fuse",
"libfuse"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "16197dede05629e05aec2875ddaa2dd771119cb21d1750e2ac2e2eff86301511",
"md5": "5c4af5a251b6c38c03c4d589ed3e6d19",
"sha256": "6da3519eec1278d142e611a9149755bdf7b4f645500752c335555cb6f8495a43"
},
"downloads": -1,
"filename": "refuse-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5c4af5a251b6c38c03c4d589ed3e6d19",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 24502,
"upload_time": "2020-07-10T19:35:35",
"upload_time_iso_8601": "2020-07-10T19:35:35.234223Z",
"url": "https://files.pythonhosted.org/packages/16/19/7dede05629e05aec2875ddaa2dd771119cb21d1750e2ac2e2eff86301511/refuse-0.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0731a9ca9d51a5f43c409ca14c6a9da0b6ff21b87786bb058df9cfb8e6963003",
"md5": "bc40cd52eba0a45067379590a89dca9a",
"sha256": "b760e0711b3ed3b00621ce2ffead8f1bb838ffc66df559a64b46d74e2636e69a"
},
"downloads": -1,
"filename": "refuse-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "bc40cd52eba0a45067379590a89dca9a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 22225,
"upload_time": "2020-07-10T19:35:37",
"upload_time_iso_8601": "2020-07-10T19:35:37.858783Z",
"url": "https://files.pythonhosted.org/packages/07/31/a9ca9d51a5f43c409ca14c6a9da0b6ff21b87786bb058df9cfb8e6963003/refuse-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-07-10 19:35:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pleiszenburg",
"github_project": "refuse",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "refuse"
}