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
External Data Representation
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!
{{Short description|Data serialization format}} {{Multiple issues| {{more footnotes|date=February 2017}} {{more citations needed|date=February 2017}} }} {{OSIModel}} '''External Data Representation''' ('''XDR''') is a [[technical standard|standard]] [[data serialization]] format, for uses such as [[computer network]] protocols. It allows data to be transferred between different kinds of computer systems. Converting from the local representation to XDR is called ''encoding''. Converting from XDR to the local representation is called ''decoding''. XDR is implemented as a software library of functions which is portable between different [[operating system]]s and is also independent of the [[transport layer]]. XDR uses a base unit of 4 bytes, serialized in [[big-endian]] order; smaller data types still occupy four bytes each after encoding. Variable-length types such as string and opaque are padded to a total divisible by four bytes. [[Floating-point number]]s are represented in [[IEEE 754]] format. ==History== XDR was developed in the mid 1980s at [[Sun Microsystems]], and first widely published in 1987.<ref>{{cite journal |title= XDR: External Data Representation Standard |author= Sun Microsystems |journal= RFC 1014 |year= 1987 |publisher=Network Working Group |doi= 10.17487/RFC1014 |url= http://tools.ietf.org/html/rfc1014 |access-date= July 11, 2011 |doi-access= free }}</ref> XDR became an [[IETF]] [[Internet standard|standard]] in 1995. The XDR data format is in use by many systems, including: * [[Network File System (protocol)]] * [[ZFS]] File System * [[NDMP]] Network Data Management Protocol * [[Open Network Computing Remote Procedure Call]] * [[EMC NetWorker|Legato NetWorker]] backup software (later sold by EMC) * [[NetCDF]] (a scientific data format) * The [[R programming language|R language and environment for statistical computing]] * The [http://www.w3.org/Protocols/HTTP-NG/http-ng-status.html HTTP-NG] [[Binary Wire Protocol]] * The [[SpiderMonkey (Javascript engine)|SpiderMonkey]] JavaScript engine, to serialize/deserialize compiled JavaScript code * The [[Ganglia (software)|Ganglia]] distributed monitoring system * The [[sFlow]] network monitoring standard * The [[libvirt]] virtualization library, [[Application Programming Interface|API]] and [[User Interface|UI]] *The [[Firebird (database server)]] for Remote Binary Wire Protocol * [[Stellar (payment network)|Stellar Payment Network]] == XDR data types == * [[Boolean data type|boolean]] * int β 32-bit [[Integer (computer science)|integer]] * unsigned int β unsigned 32-bit [[Integer (computer science)|integer]] * hyper β 64-bit [[Integer (computer science)|integer]] * unsigned hyper β unsigned 64-bit [[Integer (computer science)|integer]] * [[IEEE 754|IEEE]] [[floating point|float]] * IEEE [[double precision|double]] * [[quadruple precision|quadruple]] (new in RFC1832) * [[Enumerated type|enumeration]] * [[Record (computer science)|structure]] * [[string (computer science)|string]] * fixed length [[Array data structure|array]] * variable length [[Array data structure|array]] * [[Tagged union|union]] β discriminated union * fixed length [[Opaque data type|opaque]] data * variable length [[Opaque data type|opaque]] data * [[Void type|void]] β zero byte quantity * optional β optional data is notated similarly to C pointers, but is represented as the data type "pointed to" with a Boolean "present or not" flag. Semantically this is [[option type]]. ==See also== * Structured Data eXchange Format ([[SDXF]]) * [[Remote Procedure Call]] * [[Abstract Syntax Notation One]] * [[Data Format Description Language]] * [[Comparison of data serialization formats]] ==References== {{Reflist}} ==External links== The XDR standard exists in three different versions in the following RFCs: * {{IETF RFC|4506|link=no}} 2006 This document makes no technical changes to RFC 1832 and is published for the purposes of noting IANA considerations, augmenting security considerations, and distinguishing normative from informative references. * {{IETF RFC|1832|link=no}} 1995 version. Added Quadruple precision floating point to RFC 1014. * {{IETF RFC|1014|link=no}} 1987 version. * [http://www.cisco.com/en/US/docs/ios/sw_upgrades/interlink/r2_0/rpc_pr/rpxdesc.html Cisco's XDR: Technical Notes] * [https://archive.today/20130415090003/http://lxr.mozilla.org/seamonkey/source/js/src/jsxdrapi.c jsxdrapi.c], the main source file of SpiderMonkey that uses XDR * [http://sourceforge.net/p/firebird/code/59328/tree/firebird/trunk/src/remote/protocol.cpp protocol.cpp] main xdr source file used in Firebird remote protocol * [https://archive.today/20150213112723/https://sourceware.org/git/?p=glibc.git;a=tree;f=sunrpc;hb=HEAD The GNU Libc implementation of rpcgen, the XDR parser.] * [https://web.archive.org/web/20080908103558/http://labs.mudynamics.com/2008/03/24/ruby-xdr-parser/ Mu Dynamics Research Labs racc grammar for XDR] * [http://ivmaiasn.sourceforge.net/ IvmaiAsn ASN1/ECN/XDR Tools] (a collection of tools containing an XDR/RPC-to-ASN.1 converter) {{Data Exchange}} [[Category:Networking standards]] [[Category:Internet Standards]] [[Category:Internet protocols]] [[Category:Data modeling languages]] [[Category:Data serialization formats]] [[Category:Data transmission]] [[Category:Sun Microsystems software]]
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:Cite journal
(
edit
)
Template:Data Exchange
(
edit
)
Template:IETF RFC
(
edit
)
Template:Multiple issues
(
edit
)
Template:OSIModel
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)