Instead of developing a new code for each individual search tool alternative, provide the user with general input/output functions that a user could adapt for their own choice of search tool. The benefits of this solution:
no need to worry about ensuring each dependency works across versions and OSs.
no need to keep up-to-date with latest developments in search-tool development
There are alternatives to NCBI's blastn that are often much faster, but:
There is a large number: https://en.wikipedia.org/wiki/List_of_sequence_alignment_software In particular: usearch, blat, megablast, plast, diammond (nucleotide capabilities pending: https://github.com/bbuchfink/diamond/issues/117)
Instead of developing a new code for each individual search tool alternative, provide the user with general input/output functions that a user could adapt for their own choice of search tool. The benefits of this solution: