It would be very helpful to have for a programming project I'm working on involving grapheme-to-phoneme translation. I've been able to find many rules for phonemes but not too many for allophones.
You ask about allophonic rules for "the English language". There are no such rules. There are different allophonic rules for the various dialects of English. But even collecting a set of rules for some major, more or less standardized English dialect would be problematic, because of linguists' very strong tendency to disagree about the facts, to say nothing of their interpretation. Probably a fair number of linguists would not even agree that there are such things as allophonic rules (but I do).
If you are interested in grapheme to phoneme translation, you don't need to care at all about allophonic rules. Allophones are not at all reflected in orthography. However, you do need to care about what sense of "phoneme" you are interested in for any translation. People use "phoneme" in many different ways; sometimes they mean "underlying form", and sometimes they mean "phonetic form, but undoing any rules that introduce derived-only segments". The usual example of a derived-only segment for English is aspiration, and another example is the flap [ɾ]. But the flap can come unpredictably either from /t/ or /d/, which means that you can't translate from a surface flap to a specific underlying consonant (thus, under one definition, the flap is a phoneme). Whether or not a flap is a segment of underlying representations is completely unclear. Many people like to assert that there are no underlying flaps, but the reasoning for that is usually that you could predict a surface flap from some other phoneme, and therefore you can "avoid" having an underlying flap.
I also suggest that you look at the concept of "phonetic implementation", since a lot of what used to be thought of as coming from "allophonic rules" (such as "devoicing of /l/ after /s/") is not the result of a phonological rule, it's a mechanical reflection of how the glottis is opened in producing /s/ in English (which is itself in the realm of "phonetic implementation" and not "phonological rule").