HOME

TheInfoList



OR:

yEnc is a
binary-to-text encoding A binary-to-text encoding is encoding of data in plain text. More precisely, it is an encoding of binary data in a sequence of printable characters. These encodings are necessary for transmission of data when the channel does not allow binary ...
scheme for transferring binary files in messages on
Usenet Usenet () is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it was ...
or via
e-mail Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic (digital) version of, or counterpart to, mail, at a time when "mail" meant ...
. It reduces the overhead over previous
US-ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
-based encoding methods by using an 8-bit encoding method. yEnc's overhead is often (if each byte value appears approximately with the same frequency on average) as little as 1–2%, compared to 33–40% overhead for 6-bit encoding methods like uuencode and
Base64 In computer programming, Base64 is a group of binary-to-text encoding schemes that represent binary data (more specifically, a sequence of 8-bit bytes) in sequences of 24 bits that can be represented by four 6-bit Base64 digits. Common to all bina ...
. yEnc was initially developed by Jürgen Helbing, and its first release was early 2001. By 2003 yEnc became the de facto standard encoding system for binary files on Usenet. The name yEncode is a wordplay on ''"Why encode?"'', since the idea is to only encode characters if it is absolutely required to adhere to the message format standard.


How yEnc works

Usenet and email message bodies were intended to contain only ASCII characters ( or ). Most competing encodings represent binary files by converting them into printable ASCII characters, because the range of printable ASCII characters is supported by most operating systems. However, since this reduces the available character set considerably, there is significant overhead (wasted bandwidth) over 8bit-byte networks. For example, in uuencode and Base64, three bytes of data are encoded into four printable ASCII characters, which equals four bytes, a 33% overhead (not including the overhead from headers). yEnc uses one character (one byte) to represent one byte of the file, with a few exceptions. yEnc assumes that binary data mostly can be transmitted through Usenet and email. Therefore, 252 of the 256 possible bytes are passed through unencoded as a single byte, whether that result is a printable ASCII character or not. Only NUL, LF, CR, and = are escaped. LF and CR are escaped because the RFCs that define
Internet The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
messages still require that carriage returns and line feeds have special meaning in a mail message. = is the escape character, so it itself is escaped. NUL is also escaped because of problems handling null characters in common code, although as an optimization yEnc adds 42 to every source byte so that, not uncommon, long stretches of zero bytes do not require a lot of escaping. There is no
RFC RFC may refer to: Computing * Request for Comments, a memorandum on Internet standards * Request for change, change management * Remote Function Call, in SAP computer systems * Rhye's and Fall of Civilization, a modification for Sid Meier's Civ ...
or other standards document describing yEnc. The yEnc homepage contains a specification and a grammar The yEnc homepage states that "''all major newsreaders have been extended to yEnc support''".
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's
Outlook Express Outlook Express, formerly known as Microsoft Internet Mail and News, is a discontinued email and news client included with Internet Explorer versions 3.0 through to 6.0. As such, it was bundled with several versions of Microsoft Windows, from ...
,
Windows Mail Mail (formerly Windows Mail) is an email client developed by Microsoft and included in Windows Vista and later versions of Windows. The main function of Mail is sending and receiving email. It is available as the successor to Outlook Express, wh ...
and
Windows Live Mail Windows Live Mail (formerly named Windows Live Mail Desktop, code-named Elroy) was a freeware email client from Microsoft. It is the successor to Windows Mail in Windows Vista, which was the successor to Outlook Express in Windows XP and Windows ...
do not provide yEnc support for either news or mail, but there are plug-ins available.
Mozilla Thunderbird Mozilla Thunderbird is a free and open-source cross-platform email client, personal information manager, news client, RSS and chat client developed by the Mozilla Foundation and operated by subsidiary MZLA Technologies Corporation. The projec ...
will decode single-part yEnc files, but is not able to combine multi-part binaries.


Problems

Many programmers and news admins have outlined the weaknesses of yEnc. It suffers from many of the same flaws as uuencode does, a number of which had already been solved years before by
MIME Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of email messages to support text in character sets other than ASCII, as well as attachments of audio, video, images, and application programs. Message ...
(which addressed the same flaws in uuencode). For example, yEnc requires the strings "=ybegin" and "=yend" to be placed around the encoded file in the message body. Although this is an improvement over uuencode's "begin" and "end", which occur more frequently in normal text, message readers can still encounter the strings outside of attachments (most frequently in discussions about yEnc itself). yEnc also attempt to reassemble files split into multiple messages by using the subject line, which is unreliable.


yEncode adoption

The yEncode draft proposal document was made available on 31 July 2001. A reference encoder and decoder was included in the MyNews 1.9 freeware version in November that year. yDec, a freeware win32 decoder came on 14 November 2001. On 21 March 2002,
Agent Agent may refer to: Espionage, investigation, and law *, spies or intelligence officers * Law of agency, laws involving a person authorized to act on behalf of another ** Agent of record, a person with a contractual agreement with an insuranc ...
supported yEnc with version 1.91. Due to feedback of Juergen Helbing, the release was postponed by one week. A couple of days after the release Jürgen Helbing wrote that Forté implemented yEnc ''in the best way imaginable''. Stuffit Deluxe added yEnc support with version 8.0 in 2003. PowerArchiver 9.2 added yEnc support in May 2005.


References


External links


yEnc homepageyEnc specification text
{{Data Exchange Binary-to-text encoding formats Usenet Email