(Started writing this as an answer to https://tex.stackexchange.com/questions/409339/alternative-tex-compilers)

Unfortunately it’s hard to find good information on this topic. Anyway, the short answer to your question is that yes, there exist multiple alternate implementations of TeX. (But the ones used in practice all ultimately stem from common code and diverge in different ways; there exist others of somewhat different provenance but they have fallen into disuse and it can be a challenge to use them.)

Long answer

Fundamentally, the TeX engine/compiler/implementation is just a program: a program which takes input (a set of instructions, usually given in a .tex file), and carries out corresponding actions (acting on those instructions, e.g. if the instruction is a character then typeset it; if it sets a parameter or defines a macro then save the value, etc).

Different TeX-related programs differ in what instructions they agree to accept, and in how they implement acting on those instructions.

It can be hard to say when a program is different. For example, if a single line is changed, is it a new program? What if the program is automatically translated to another programming language before compiling? And what if someone rewrites the code from scratch, but with exactly the same behaviour?

For simplicity, we’ll consider nearly everything a new program.

Here are some:

  • NTS, a Java reimplementation
  • putex
  • common-tex
  • yytex
  • cxtex
  • extex
  • xenix
  • TeX Live, MiKTeX, web2c, proTeXt
  • rsTeX

Being collected at https://github.com/tex-other. See also the list at http://wiki.contextgarden.net/TeX_Distributions#alternative_TeX_processors and follow up on https://github.com/YandYTeX?tab=repositories>.

Pre-history

In the beginning, Knuth wrote down some ideas for what the (not yet written) TEX [sic] program should do (in the files named TEXDR.AFT and then TEX.ONE, reprinted as Chapters 24 and 25 of Digital Typography), and asked his students