refuse
refuse copied to clipboard
Simple cross-plattform ctypes bindings for libfuse / FUSE for macOS / WinFsp

Synopsis
refuse is a Python module implemented using ctypes that provides a simple cross-platform interface to:
refuse originated as a fork of 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
libfuse3support - [ ] Marking
libfuse2support 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.
Project status
THIS PROJECT HAS ALPHA STATUS.
The high level API has been tested through LoggedFS-python with pjdfstest and fsx 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 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.
You can install the preview releases from PyPI:
pip install refuse
You can alternatively also install the current HEAD, most likely very unstable:
pip install git+https://github.com/pleiszenburgrefuse.git@develop
refuse (theoretically) runs on:
| OS | API | arch | ||||||
|---|---|---|---|---|---|---|---|---|
| level | version | i386 | x86_64 | PPC | PPC64 | arm64 | MIPS | |
| Linux | high | 2 | yes | yes | yes | yes | yes | yes |
| 3 | no | no | no | no | no | no | ||
| low | 2 | yes | yes | yes | yes | yes | yes | |
| 3 | no | no | no | no | no | no | ||
| Mac OS X | high | 2 | yes | yes | yes | yes | ||
| 3 | no | no | no | no | ||||
| low | 2 | yes | yes | yes | yes | |||
| 3 | no | no | no | no | ||||
| FreeBSD | high | 2 | yes | yes | no | no | no | no |
| 3 | no | no | no | no | no | no | ||
| low | 2 | yes | yes | no | no | no | no | |
| 3 | no | no | no | no | no | no | ||
| OpenBSD | high | 2 | yes | yes | yes | yes | yes | yes |
| 3 | no | no | no | no | no | no | ||
| low | 2 | no | no | no | no | no | no | |
| 3 | no | no | no | no | no | no | ||
| Windows | high | 2 | yes | yes | no | |||
| 3 | no | no | no | |||||
| low | 2 | no | no | no | ||||
| 3 | no | no | no | |||||
| Windows/Cygwin | high | 2 | yes | yes | no | |||
| 3 | no | no | no | |||||
| low | 2 | no | no | no | ||||
| 3 | no | no | no | |||||
Porting a project from fusepy to refuse
Miscellaneous
- Authors (credit where credit is due)
- Change log (current) (changes in development branch since last release)
- Change log (past) (release history)
- Contributing (Contributions are highly welcomed!)
- Documentation (mostly notes at this point)
- License (ISCL)