> Um... Then why are we bothering with all these BE checks? Just so in the future when/if node runs on BE we're ready for it?

Yes. It's trivial to get right now and it's one less worry if/when node gets ported to a BE architecture.

There is no real need to rely on defines here. You can use the snippet below. gcc is smart enough to compile it down to a constant. I assume msvc can do the same thing.

```c++
enum endian_t { BIG_ENDIAN, LITTLE_ENDIAN };

static endian_t endianness() {
  const union { uint8_t u8[2]; uint16_t u16; } u = {{0, 1}};
  return u.u16 == 1 ? BIG_ENDIAN : LITTLE_ENDIAN;
}
```