| 1 | = libMVFS transition= |
| 2 | |
| 3 | == Goals == |
| 4 | |
| 5 | Libmvfs is a small virtual filesystem library in userland, which allows applications to connect to lots of different filesystems, from dumb local-fs to network filesystems like 9P. |
| 6 | Current MC uses it's own vfs layer (mcvfs), which cannot be used outside of MC and also has several open issues. |
| 7 | |
| 8 | With libmvfs support, MC can directly use all filesystems provided by libmvfs and so even connect to remote services, eg. 9P-based ones. |
| 9 | |
| 10 | == Roadmap == |
| 11 | |
| 12 | === 1. Add core libmvfs support === |
| 13 | |
| 14 | Most of the work is already done in 225_mvfs branch: it adds core libmvfs support and a few mvfs-based filesystems (9P, local, ...). |
| 15 | |
| 16 | === 2. Port missing mcvfs-filesystems to libmvfs === |
| 17 | |
| 18 | ATM libmvfs does not support all of mcvfs' filesystems (eg. extfs/sfs, fish, etc). These fs'es have to be ported to libmvfs. Once this is done, MC will use libmvfs for them, and internal support is dropped. |
| 19 | |
| 20 | === 3. Pass everything to libmvfs, drop mcvfs === |
| 21 | |
| 22 | As at that point (when #2 is done), libmvfs will support all of mcvfs' filesystems, the whole mcvfs stuff is dropped / replaced by a tiny wrapper to libmvfs. From that point on, all filesystem access will run over libmvfs. MC itself will only pass certain config settings (eg. from extfs.ini) to libmvfs. |
| 23 | |