Add file descriptors and per-module metadata caching