yEnc

From Wikipedia, the free encyclopedia

Template:Short description

yEnc is a binary-to-text encoding scheme for transferring binary files in messages on Usenet or via e-mail. It reduces the overhead over previous US-ASCII-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%,[1] compared to 33–40% overhead for 6-bit encoding methods like uuencode and Base64. 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.[2] 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.[3]

How yEnc works

Usenet and email message bodies were intended to contain only ASCII characters (Template:IETF RFC or Template:IETF RFC). 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 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 or other standards document describing yEnc.[4] The yEnc homepage contains a draft informal[<span title="Script error: No such module "decodeEncode".">citation needed] specification and a grammar (which contradict Template:IETF RFC and Template:IETF RFC),[<span title="Script error: No such module "decodeEncode".">citation needed] although neither has been submitted to the Internet Engineering Task Force.[<span title="Script error: No such module "decodeEncode".">citation needed]

As with uuencoding, despite its flaws, yEnc remains[when?] active and effective on Usenet.[<span title="Script error: No such module "decodeEncode".">citation needed] The yEnc homepage states that "all major newsreaders have been extended to yEnc support". Microsoft's Outlook Express, Windows Mail and Windows Live Mail do not provide yEnc support for either news or mail, but there are plug-ins available. Mozilla Thunderbird will decode single-part yEnc files, but is not able to combine multi-part binaries.[5]

Problems

Many programmers and news admins have outlined the weaknesses of yEnc.[6][7][8][9] It suffers from many of the same flaws as uuencode does, a number of which had already been solved years before by MIME (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.[3] 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 and uuencode[<span title="Script error: No such module "decodeEncode".">citation needed] also attempt to reassemble files split into multiple messages by using the subject line, which is unreliable.[<span title="Script error: No such module "decodeEncode".">according to whom?]

yEncode adoption

The yEncode draft proposal document was made available on 31 July 2001.[10] A reference encoder and decoder was included in the MyNews 1.9 freeware version in November that year.[11] yDec, a freeware win32 decoder came on 14 November 2001. On 21 March 2002, Agent supported yEnc with version 1.91.[12][13] Due to feedback of Juergen Helbing, the release was postponed by one week.[14][15] A couple of days after the release Helbing wrote that Forté implemented yEnc in the best way imaginable.[16]

Stuffit Deluxe added yEnc support with version 8.0 in 2003.[17][18] PowerArchiver 9.2 added yEnc support in May 2005.[19]

References

Page Template:Reflist/styles.css has no content.

  1. ^ Page Module:Citation/CS1/styles.css has no content.Helbing, Juergen (28 February 2002). "yEncode - A quick and dirty encoding for binaries". Retrieved 26 July 2014.
  2. ^ Page Module:Citation/CS1/styles.css has no content.Fellows, G. (2006). "Newsgroups reborn – The binary posting renaissance". Digital Investigation. 3 (2): 73–78. doi:10.1016/j.diin.2006.04.006. ISSN 1742-2876.
  3. ^ a b Page Module:Citation/CS1/styles.css has no content.Kim, Juhoon; Schneider, Fabian; Ager, Bernhard; Feldmann, Anja (2010). "Today's Usenet Usage: NNTP Traffic Characterization". 2010 INFOCOM IEEE Conference on Computer Communications Workshops. pp. 1–6. CiteSeerX 10.1.1.679.6023. doi:10.1109/INFCOMW.2010.5466665. ISBN 978-1-4244-6739-6. S2CID 18282467.
  4. ^ Page Module:Citation/CS1/styles.css has no content.High Definition: An A to Z Guide to Personal Technology. 2006. p. 353. ISBN 978-0618714896. While there are no official standards for yEnc, it is widely used for posting binary files on newsgroups
  5. ^ Page Module:Citation/CS1/styles.css has no content."Yenc support in Thunderbird?". org.mozilla.lists.support-thunderbird (Mailing list). 18 May 2006. Archived from the original on 28 November 2016. Retrieved 24 January 2015.
  6. ^ Page Module:Citation/CS1/styles.css has no content.Helbing, Jürgen (10 June 2002). "Opponents to yEnc". yenc.org. Archived from the original on 28 August 2013.
  7. ^ Page Module:Citation/CS1/styles.css has no content.Nixon, Jeremy (17 March 2002). "Why yEnc is bad for Usenet". Archived from the original on 29 August 2013.
  8. ^ Page Module:Citation/CS1/styles.css has no content.Welch, Curt (19 September 2002). "What's wrong with yEnc?". Archived from the original on 11 August 2013.
  9. ^ Page Module:Citation/CS1/styles.css has no content.Färber, Claus (4 March 2002). "yEnc considered harmful". Archived from the original on 1 June 2009.
  10. ^ Page Module:Citation/CS1/styles.css has no content."The original draft yEnc 1.0". 31 July 2001.
  11. ^ Page Module:Citation/CS1/styles.css has no content.Juergen "The Archiver" Helbing. "New features in 1.9". winews.net.
  12. ^ Page Module:Citation/CS1/styles.css has no content."Agent 1.91 is Released". forteinc.com. Agent 1.91 provides full support for yEnc, a new Usenet encoding algorithm for binaries.
  13. ^ Page Module:Citation/CS1/styles.css has no content.Spanbauer, Scott (August 2002). "Revision control - Latest Software Tweaks (Listen to a world of radio stations on the Internet)". PC World. 20 (8): 138–139. Version 1.92 of Forté's Usenet newsreader adds a trash folder, improves some existing features, and takes care of various bugs; but more important than the fixes and enhancements is the application's added support for the YEnc binary encoding algorithm.
  14. ^ Page Module:Citation/CS1/styles.css has no content."Agent 1.91 needs one more week". Forté. 15 March 2002.
  15. ^ Page Module:Citation/CS1/styles.css has no content."Juergen Helbing's feedback on yEnc and Agent 1.91". Forté. 17 March 2002.
  16. ^ Page Module:Citation/CS1/styles.css has no content.Helbing, Jürgen (22 March 2002). "Forte Agent 1.91 supports yEnc".
  17. ^ Page Module:Citation/CS1/styles.css has no content.Sellers, Dennis (22 September 2003). "StuffIt Deluxe 8.0 gets new plug-ins, performance boost". Macworld.
  18. ^ Page Module:Citation/CS1/styles.css has no content.Breen, Christopher (July 2004). "Stufflt Deluxe 8.0". Macworld. 21 (7): 40.
  19. ^ Page Module:Citation/CS1/styles.css has no content.Richard V. Dragan (4 May 2005). "File Compression: PowerArchiver 9.2".

Template:DMCA

Template:Data Exchange