Mount IPFS directory as local FS. go-ipfs daemon has this function but as of version 0.9.1 it's slow. ipfs-api-mount aims to be more efficient. For sequential access to random data it's ~3 times slower than ipfs cat but also ~20 times faster than cating files mounted by go-ipfs. It's supposed that FS mounted by go-ipfs daemon is slow because of file structure being accessed in every read. By adding caching one can improve performance a lot. Apart from mounting one specified CID you can also mount whole IPFS namespace. This is similar to ipfs mount provided in go-ipfs. ipfs-api-mount uses node API for listing directories and reading objects. Objects are decoded and file structure is created localy (not in IPFS node). Caching is added on objects level. In case of nonlinear file access with many small reads there is a risk of cache thrashing. If this occurs performance will be much worst than without cache. When using the command you can adjust cache size to get best performance.
Features
- Mount IPFS directory as local FS
- By adding caching one can improve performance a lot
- Mount whole IPFS at once
- Python-level use
- Mountpoints can be created inside python programs
- ipfs-api-mount uses node API for listing directories and reading objects