The word "alternative""alternative" would work here. It's pretty versatile, so it should cover your context. It can be used no matter the level of formality you want and can be used to describe a wide variety of things. Here are some examples:
-
We present two quicksort alternatives for cache optimizations which work well on both balanced and unbalanced data sets.
Improving Memory Performance of Sorting Algorithms -
Is ReactOS a viable Windows alternative? Taking the OS for a test drive
-
The preferred alternative to this method is
orElseThrow()
.
OptionalLong (Java SE 11 & JDK 11) - Oracle Docs -
Our selection actually contains more than 20 libraries, as some of them are alternatives to each other and solve the same problem.
Top 20 Python libraries for data science in 2018