From: Han-Wen N. <ha...@gm...> - 2011-04-19 04:05:36
|
[x-post from the Go newsgroup] Go-FUSE is a fully native Go library for writing filesystems in userspace. It's available from https://github.com/hanwen/go-fuse I've working on it steadily since the first release on Dec. 29, so here is a status update: * Much improved speed: now within a factor 2 of C/C++ based filesystems on filesystem benchmarks. For most real world applications, the difference will be negligible. * Supports in-process mounting of different PathFileSystems onto each other. * Supports extended attributes. * Includes more fleshed out examples: - ZipFS: mounting .zip archive contents - MultiZipFS: mounting many .zip archives on a single file system - UnionFS: a union mount using 1 R/W branch, and multiple R/O branches. - AutoUnionMount: automatically creates union mounts for directories that contain a READONLY link. * Adds various utility classes for creating file systems easily: - LockingFileSystem: surrounds a non-threadsafe FS with a coarse grained lock. - TimingFileSystem: for collecting per-operation timings of a file system. - ReadOnlyFile: a FUSE file implementing just read methods. - DevNullFile: a FUSE file that accepts any writes and always returns EOF. I'd be thrilled to get feedback on how well it works for people. Enjoy! -- Han-Wen Nienhuys - ha...@xs... - http://www.xs4all.nl/~hanwen |