Welcome to the OcamlFuse wiki
OcamlFuse is a binding to the high-level part of the fuse library, allowing you to implement linux filesystems in OCaml. Other operating systems are not supported, if you think you can help we will be glad to hear.
The main features of ocamlfuse are:
- Multithreading: each callback runs in a separate ocaml thread, so that a slow call can't block the filesystem
- Efficiency: read and write operations use the bigarray library achieving very high troughput
- Ease of use: the fusexmp filesystem (mimicking bindfs) is 73 lines of code, including in-memory extended attributes using a hash table. The hello example is 42 lines of code.
- Download the release from here:
Read the readme for installation, and then start hacking the fusexmp filesystem.
Filesystems using OCamlFuse
- RelFS, the relational file system
A linux userspace filesystem using fuse and a relational database to store information about files. Special directories can represent views on the database, and many powerful features, such as bayesian classification, are added through plugins.
Currently in re-design phase after playing a lot with the current prototype. It will be multi-volume soon allowing you to coherently index your external hard drives and to keep metadata with the data (so that your friends will see your tags when you move the drive).
- TransparenTag File System
Replaces traditional file system with tagged cloud.Data and tags are stored as regular files, so if something goes wrong, your data and tags won't disappear.It is for developers also,so you can keep your files tagged and your build tools would still work.
A binding to the low-level fuse API allowing you to use inodes directly
Todo list and wishes
- Implement a stateful readdir API (the current implementation might not scale).