I've been using ROMVault for years, and found it to work the best with huge collections. Recently migrated the Unraid container app, based on
https://hub.docker.com/r/laromicas/romvault/ and it is even better to be able to run on my storage server itself.