Wikipedia / External Data Representation
Wikipedia / External Data Representation
External Data Representation (XDR) is a technical standard format for data serialization, 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 systems and is also independent of the transport layer.
XDR uses a base unit of 4 bytes, 32 bits, 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 numbers are represented in IEEE 754 format.
History
XDR was developed in the mid 1980s at Sun Microsystems, and first widely published in 1987. XDR became an Internet Engineering Task Force (IETF) Internet Standard in 1995.
The XDR data format is in use by many systems, including:
Network File System protocol
ZFS, former Zettabyte File System
Network Data Management Protocol (NDMP)
Open Network Computing Remote Procedure Call (Sun RPC)
EMC NetWorker, former Legato NetWorker, backup software, sold later by EMC
NetCDF, a scientific data format
The R language and environment for statistical computing
The HTTP-NG binary wire protocol
The SpiderMonkey JavaScript engine, to serialize/deserialize compiled JavaScript code
The 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
XDR data types
unsigned int – unsigned 32-bit integer
unsigned hyper – unsigned 64-bit integer
IEEE double
quadruple – new in RFC1832
fixed length array
variable length array
union – discriminated union
fixed length opaque data
variable length opaque data
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
References
External links
The XDR standard exists in three different versions in the following RFCs:
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.
1995 version. Added quadruple precision floating point to RFC 1014.
1987 version.
, the main source file of SpiderMonkey that uses XDR
protocol.cpp main xdr source file used in Firebird remote protocol
IvmaiAsn ASN1/ECN/XDR Tools (a collection of tools containing an XDR/RPC-to-ASN.1 converter)