De jure:
There are multiple limits, on each part of an address.
RFC5322 specifies that mail lines MUST be less than 998 characters, which would put an upper limit on addresses a bit shorter than that (need to include the command as well).
But RFC5321 specifies:
4.5.3.1.1. Local-part
The maximum total length of a user name or other local-part is 64
octets.
4.5.3.1.2. Domain
The maximum total length of a domain name or number is 255 octets.
4.5.3.1.3. Path
The maximum total length of a reverse-path or forward-path is 256
octets (including the punctuation and element separators).
So, 64 octets for username, 254 for <username@domain>.
De facto:
You can test compliance yourself with plus-syntax. Email yourself at yourusername+whateveryouwant@yourdomain.