Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
YEnc
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{lowercase|title=yEnc}} {{short description|File transfer encoding scheme}} '''yEnc''' is a [[binary-to-text encoding]] scheme for transferring binary files in messages on [[Usenet]] or via [[e-mail]]. It reduces the [[computational overhead|overhead]] over previous [[ASCII|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%,<ref>{{cite web |url=http://www.yenc.org/yenc-draft.1.3.txt |first=Juergen |last=Helbing |access-date=2014-07-26 |date=2002-02-28 |title=yEncode - A quick and dirty encoding for binaries}}</ref> 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.<ref name="Fellows2006">{{cite journal |last1=Fellows |first1=G. |title=Newsgroups reborn – The binary posting renaissance |journal=Digital Investigation |volume=3 |issue=2 |year=2006 |pages=73–78 |issn=1742-2876 |doi=10.1016/j.diin.2006.04.006}}</ref> 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.<ref name="KimSchneider2010">{{cite book |last1=Kim |first1=Juhoon |title=2010 INFOCOM IEEE Conference on Computer Communications Workshops |last2=Schneider |first2=Fabian |last3=Ager |first3=Bernhard |last4=Feldmann |first4=Anja |chapter=Today's Usenet Usage: NNTP Traffic Characterization |year=2010 |pages=1–6 |doi=10.1109/INFCOMW.2010.5466665 |isbn=978-1-4244-6739-6 |citeseerx=10.1.1.679.6023|s2cid=18282467 }}</ref> ==How yEnc works== Usenet and email message bodies were intended to contain only ASCII characters ({{IETF RFC|822}} or {{IETF RFC|2822}}). 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 [[Null character|NUL]], [[line feed|LF]], [[Carriage return|CR]], and = are [[Escape character|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 [[Request for Comments|RFC]] or other standards document describing yEnc.<ref name="AHD2006">{{cite book |url=https://archive.org/details/highdefinitionan00edit/page/353/mode/2up |title=High Definition: An A to Z Guide to Personal Technology |year=2006 |isbn=978-0618714896 |pages=353 |quote=While there are no official standards for yEnc, it is widely used for posting binary files on newsgroups |url-access=registration}}</ref> The yEnc homepage contains a {{cns|date=February 2019|draft informal}} specification and a grammar {{cns|date=February 2019|(which contradict {{IETF RFC|2822}} and {{IETF RFC|2045}}),}} {{cns|date=February 2019|although neither has been submitted to the [[Internet Engineering Task Force]].}} {{cns|date=February 2019|As with uuencoding, despite its flaws, yEnc remains{{when|date=February 2019}} active and effective on Usenet.}} 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-in (computing)|plug-ins]] available. [[Mozilla Thunderbird]] will decode single-part yEnc files, but is not able to combine multi-part binaries.<ref>{{cite mailing list|url=http://markmail.org/message/uk4w6mth3p7pe5xf|title=Yenc support in Thunderbird?|date=2006-05-18|mailing-list=org.mozilla.lists.support-thunderbird}} <!-- > Thunderbird will automatically decode yEnc binaries, but cannot combine > multi-part binaries, which means you can only use it on single-part > binaries. Yes, and only those yenc binaries that do not have a part one of one header entry on the second line of the header. TB treats that as a multi-part file even though it is a single part file. --></ref> ==Problems== Many programmers and news admins have outlined the weaknesses of yEnc.<ref name="opponents">{{cite web |url=http://www.yenc.org/opponent.htm |title=Opponents to yEnc |first=Jürgen |last=Helbing |date=2002-06-10 |website=yenc.org |archive-url=https://web.archive.org/web/20130828001711/http://www.yenc.org/opponent.htm |archive-date=2013-08-28 |url-status=live }}</ref><ref> {{cite web |url=http://www.exit109.com/~jeremy/news/yenc.html |title=Why yEnc is bad for Usenet |first=Jeremy |last=Nixon |date=2002-03-17 |archive-url=https://web.archive.org/web/20130829160545/http://www.exit109.com/~jeremy/news/yenc.html |archive-date=2013-08-29 |url-status=dead}}</ref><ref> {{cite web |url=http://www.exit109.com/~jeremy/news/yenc-cw.html |title=What's wrong with yEnc? |first=Curt |last=Welch |date=2002-09-19 |archive-url=https://web.archive.org/web/20130811090521/http://exit109.com/~jeremy/news/yenc-cw.html |archive-date=2013-08-11 |url-status=dead}}</ref><ref> {{cite web |url=http://www.faerber.muc.de/temp/20020304-yenc-harmful.html |title=yEnc considered harmful |date=2002-03-04 |first=Claus |last=Färber |url-status=dead |archive-url=https://web.archive.org/web/20090601062851/http://www.faerber.muc.de/temp/20020304-yenc-harmful.html |archive-date=2009-06-01 }}</ref> 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.<ref name="KimSchneider2010"/> 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 {{cns|date=February 2019|and uuencode|reason=Isn't file splitting outside of the scope?}} also attempt to reassemble files split into multiple messages by using the subject line, which is unreliable.{{according to whom|date=February 2019}} == yEncode adoption == The yEncode draft proposal document was made available on 31 July 2001.<ref>{{cite web |url=http://www.yenc.org/yEnc-draft-1.txt |title=The original draft yEnc 1.0 |date=2001-07-31}}</ref> A reference encoder and decoder was included in the MyNews 1.9 freeware version in November that year.<ref>{{cite web |url=http://www.winews.net/news/a-brandnew19.htm |title=New features in 1.9 |website=winews.net |author=Juergen "The Archiver" Helbing}}</ref> yDec, a freeware win32 decoder came on 14 November 2001.<!-- yDec 1.0 14.Nov.2001 --> On 21 March 2002, [[Forté Agent|Agent]] supported yEnc with version 1.91.<ref>{{cite web |url=http://www.forteinc.com/news/bulletin.php?id=agent191gr |title=Agent 1.91 is Released |quote=Agent 1.91 provides full support for yEnc, a new Usenet encoding algorithm for binaries. |website=forteinc.com}}</ref><ref>{{cite journal |first=Scott |last=Spanbauer |date=August 2002 |title=Revision control - Latest Software Tweaks (Listen to a world of radio stations on the Internet) |journal=PC World |volume=20 |number=8 |pages=138–139 |quote=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.}}<!-- Yes, their version number and capitalization is off--></ref> Due to feedback of Juergen Helbing, the release was postponed by one week.<ref>{{cite web |url=http://www.forteinc.com/news/bulletin.php?id=agent191more |title=Agent 1.91 needs one more week |date=2002-03-15 |website=Forté}}</ref><ref>{{cite web |url=http://www.forteinc.com/news/bulletin.php?id=agent191juergen |title=Juergen Helbing's feedback on yEnc and Agent 1.91 |date=2002-03-17 |website=Forté}}</ref> A couple of days after the release Jürgen Helbing wrote that Forté implemented yEnc ''in the best way imaginable''.<ref>{{cite web |url=http://www.yenc.org/forte.htm |title=Forte Agent 1.91 supports yEnc |first=Jürgen |last=Helbing |date=2002-03-22}}</ref> [[StuffIt|Stuffit Deluxe]] added yEnc support with version 8.0 in 2003.<ref>{{cite web |url=http://www.macworld.com/article/1026760/stuffit.html |title=StuffIt Deluxe 8.0 gets new plug-ins, performance boost |first=Dennis |last=Sellers |date=2003-09-22 |website=[[Macworld]]}}</ref><ref>{{cite journal |last=Breen |first=Christopher |date=July 2004 |title=Stufflt Deluxe 8.0 |journal=Macworld |volume=21 |number=7 |pages=40}}</ref> PowerArchiver 9.2 added yEnc support in May 2005.<ref>{{cite web |url=https://www.pcmag.com/article2/0,2817,1811881,00.asp |author=Richard V. Dragan |date=2005-05-04 |title=File Compression: PowerArchiver 9.2}}</ref> == References == {{reflist}} == External links == *[http://www.yenc.org/ yEnc homepage] *[http://www.yenc.org/yenc-draft.1.3.txt yEnc specification text] *[http://b-news.sourceforge.net/yenc.html "The story of B-News and his younger brother, yEnc."] *[https://web.archive.org/web/20050122070204/http://www.ser1.net/Files/Essays/yEnc.html "Why yEnc is Good for Usenet"] {{Use dmy dates|date=February 2018}} {{Data Exchange}} [[Category:Binary-to-text encoding formats]] [[Category:Usenet]] [[Category:Email]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:According to whom
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite mailing list
(
edit
)
Template:Cite web
(
edit
)
Template:Cns
(
edit
)
Template:Data Exchange
(
edit
)
Template:IETF RFC
(
edit
)
Template:Lowercase
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)