Big-Endian Testing with QEMU

> When programming, it is still important to write code that runs correctly on systems with either byte order

What you should do instead is write all your code so it is little-endian only, as the only relevant big-endian architecture is s390x, and if someone wants to run your code on s390x, they can afford a support contract.

If you comes to low level network protocol (e.g. writing a TCP stack), the "network byte order" is always big-endian.
Prometheus index format is also a big-endian binary file - haven’t found any reference to why it was chosen.
That's a serialization format.

It goes without saying that all binary network protocols should document their byte order, and that if you're implementing a protocol documented as big endian you should use ntohl and friends to ensure correctness.

However if designing a new network protocol, choosing big endian is insanity. Use little endian, skip the macros, and just add

#ifndef LITTLE_ENDIAN
#error

Or the like to a header somewhere.

And honestly at this point it's mostly a historical artifact, if we write that kind of stuff then sure we need to care but to produce modern stuff is a honestly massive waste of time at this point.

FWIW I doing hobby-stuff for Amiga's (68k big-endian) but that's just that, hobby stuff.