FUSE makes it possible to implement a filesystem in a userspace program. Features include: simple yet comprehensive API, secure mounting by non-root users, support for 2.4 and 2.6 Linux kernels, multi-threaded operation. etc... Filesystem in Userspace home is
here.