Knowledge

Serialization

Source đź“ť

2410:
buffers of bits for writing to the disk. Conversely Pickle.Read reads buffers of bits from the disk and delivers a copy of the original data structure.(*) This conversion involves identifying the occurrences of addresses in the structure, and arranging that when the structure is read back from disk the addresses are replaced with addresses valid in the current execution environment. The pickle mechanism is entirely automatic: it is driven by the run-time typing structures that are present for our garbage collection mechanism. ... (*) Pickling is quite similar to the concept of marshalling in remote procedure calls. But in fact our pickling implementation works only by interpreting at run-time the structure of
1136:(ISO/IEC 13211-1) on pages 59 ff. ("Writing a term, § 7.10.5"). Therefore it is expected that terms serialized-out by one implementation can be serialized-in by another without ambiguity or surprises. In practice, implementation-specific extensions (e.g. SWI-Prolog's dictionaries) may use non-standard term structures, so interoperability may break in edge cases. As examples, see the corresponding manual pages for SWI-Prolog, SICStus Prolog, GNU Prolog. Whether and how serialized terms received over the network are checked against a specification (after deserialization from the character stream has happened) is left to the implementer. Prolog's built-in 1425:– recreates the original object. This scheme is special, in that it uses a procedural description of the object, not the data itself. It is therefore very flexible, allowing for classes to define more compact representations. However, in its original form, it does not handle cyclic data structures or preserve the identity of shared references (i.e. two references a single object will be restored as references to two equal, but not identical copies). For this, various portable and non-portable alternatives exist. Some of them are specific to a particular Smalltalk implementation or class library. There are several ways in 301:), it is possible for the common code to do both at the same time, and thus, 1) detect differences between the objects being serialized and their prior copies, and 2) provide the input for the next such detection. It is not necessary to actually build the prior copy because differences can be detected on the fly, a technique called differential execution. This is useful in the programming of user interfaces whose contents are time-varying â€” graphical objects can be created, removed, altered, or made to handle input events without necessarily having to write separate code to do those things. 412:. Such an encoding can be useful for persistent objects that may be read and understood by humans, or communicated to other systems regardless of programming language. It has the disadvantage of losing the more compact, byte-stream-based encoding, but by this point larger storage and transmission capacities made file size less of a concern than in the early days of computing. In the 2000s, XML was often used for asynchronous transfer of structured data between client and server in 932:, this will be invoked when the object is printed. This is somewhat similar to the method used in Ruby. Lisp code itself is written in the syntax of the reader, called read syntax. Most languages use separate and different parsers to deal with code and data, Lisp only uses one. A file containing lisp code may be read into memory as a data structure, transformed by another program, then possibly executed or written out, such as in a 1446:
However, the Smalltalk/X code is open source and free and can be loaded into other Smalltalks to allow for cross-dialect object interchange. Object serialization is not part of the ANSI Smalltalk specification. As a result, the code to serialize an object varies by Smalltalk implementation. The resulting binary data also varies. For instance, a serialized object created in Squeak Smalltalk cannot be restored in
1097:, respectively, that can clean up and restore an object. For example, it may be desirable to close a database connection on serialization and restore the connection on deserialization; this functionality would be handled in these two magic methods. They also permit the object to pick which properties are serialized. Since PHP 5.1, there is an object-oriented serialization mechanism for objects, the 43: 105: 708:
types, for example, cannot automatically derive Show or Read). The auto-generated instance for Show also produces valid source code, so the same Haskell value can be generated by running the code produced by show in, for example, a Haskell interpreter. For more efficient serialization, there are haskell libraries that allow high-speed serialization in binary format, e.g.
148:) and reconstructed later (possibly in a different computer environment). When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of 2409:
Our implementation makes use of a mechanism called "pickles", which will convert between any strongly typed data structure and a representation of that structure suitable for storing in permanent disk files. The operation Pickle.Write takes a pointer to a strongly typed data structure and delivers
784:
must also be serialized; and if any object in the complete graph of non-transient object references is not serializable, then serialization will fail. The developer can influence this behavior by marking objects as transient, or by redefining the serialization for an object so that some portion of
1445:
info and include mechanisms for "on the fly" object migration (i.e. to convert instances which were written by an older version of a class with a different object layout). The APIs are similar (storeBinary/readBinary), but the encoding details are different, making these two formats incompatible.
707:
function from which a string representation of the object can be generated. The programmer need not define the functions explicitly—merely declaring a type to be deriving Read or deriving Show, or both, can make the compiler generate the appropriate functions for many cases (but not all: function
1616:
It lets you take an object or group of objects, put them on a disk or send them through a wire or wireless transport mechanism, then later, perhaps on another computer, reverse the process, resurrecting the original object(s). The basic mechanisms are to flatten object(s) into a one-dimensional
986:
functions cannot be transmitted across different programs. (There is a flag to marshal the code position of a function but it can only be unmarshalled in exactly the same program). The standard marshalling functions can preserve sharing and handle cyclic data, which can be configured by a flag.
985:
module may break type guarantees, as there is no way to check whether an unmarshalled stream represents objects of the expected type. In OCaml it is difficult to marshal a function or a data structure which contains a function (e.g. an object which contains a method), because executable code in
775:
private members of a class that are not otherwise accessible. Classes containing sensitive information (for example, a password) should not be serializable nor externalizable. The standard encoding method uses a recursive graph-based translation of the object's class descriptor and serializable
768:
Secondly, the serialized state of an object forms part of its class' compatibility contract. Maintaining compatibility between versions of serializable classes requires additional effort and consideration. Therefore, making a class serializable needs to be a deliberate design decision and not a
266:
Inherent to any serialization scheme is that, because the encoding of the data is by definition serial, extracting one part of the serialized data structure requires that the entire object be read from start to end, and reconstructed. In many applications, this linearity is an asset, because it
795:
components do implement the Serializable interface, they are not guaranteed to be portable between different versions of the Java Virtual Machine. As such, a Swing component, or any component which inherits it, may be serialized to a byte stream, but it is not guaranteed that this will be
737:
interface, but a serializable class can optionally define methods with certain special names and signatures that if defined, will be called as part of the serialization/deserialization process. The language also allows the developer to override the serialization process more thoroughly by
1179:
but unsafe (not secure against erroneous or malicious data) serialization format. Malformed or maliciously constructed data, may cause the deserializer to import arbitrary modules and instantiate any object. The standard library also includes modules serializing to standard data formats:
1525:
cmdlet, which generates a deserialized object from the XML in the exported file. Deserialized objects, often known as "property bags" are not live objects; they are snapshots that have properties, but no methods. Two dimensional data structures can also be (de)serialized in
870:
package offers a more stable alternative, using a documented format and common library with wrappers for different languages, while the default serialization format is suggested to have been designed rather with maximal performance for network communication in mind.
1352:
exception): bindings, procedure objects, instances of class IO, singleton objects and interfaces. If a class requires custom serialization (for example, it requires certain cleanup actions done on dumping / restoring), it can be done by implementing 2 methods:
255:. This means that the simpler and faster procedure of directly copying the memory layout of the data structure cannot work reliably for all architectures. Serializing the data structure in an architecture-independent format means preventing the problems of 267:
enables simple, common I/O interfaces to be utilized to hold and pass on the state of an object. In applications where higher performance is an issue, it can make sense to expend more effort to deal with a more complex, non-linear storage organization.
1450:. Consequently, various applications that do work on multiple Smalltalk implementations that rely on object serialization cannot share data between these different implementations. These applications include the MinneStore object database and some 1372:
object containing all the information necessary to reconstitute objects of this class and all referenced objects up to a maximum depth given as an integer parameter (a value of -1 implies that depth checking should be disabled). The
1710:
Serialization, explained below, is an example of a tool for use by objects within an object system for operating on the graph they are embedded in. This seems to require violating the encapsulation provided by the pure object
1441:. Both provide a so-called "binary-object storage framework", which support serialization into and retrieval from a compact binary form. Both handle cyclic, recursive and shared structures, storage/retrieval of class and 456:
is a strict superset of JSON and includes additional features such as a data type tags, support for cyclic data structures, indentation-sensitive syntax, and multiple forms of scalar data quoting. YAML is an open format.
928:, the printer cannot represent every type of data because it is not clear how to do so. In Common Lisp for example the printer cannot print CLOS objects. Instead the programmer may write a method on the generic function 2455:
Origin of the name 'flattening': Because I want to leave the original 'marshal' module alone, and Jim complained that 'serialization' also means something totally different that's actually relevant in the context of
2460:
access to persistent objects, I'll use the term 'flattening' from now on. ... (The Modula-3 system uses the term 'pickled' data for this concept. They have probably solved all problems already, and in a type-safe
2414:
values, while our RPC implementation works only by generating code for the marshalling of statically typed values. Each facility would benefit from adding the mechanisms of the other, but that has not yet been
1128:. The resulting stream is uncompressed text (in some encoding determined by configuration of the target stream), with any free variables in the term represented by placeholder variable names. The predicate 599:
toolkit for C and C++, are capable of automatically producing serialization code with few or no modifications to class declarations. Other popular serialization frameworks are Boost.Serialization from the
2131:
There are many kinds of serializers; they produce very compact data very fast. There are serializers for messaging, for data stores, for marshaling objects. What is the best serializer in .NET?
274:
objects are too fragile to save because the objects to which they point may be reloaded to a different location in memory. To deal with this, the serialization process includes a step called
65: 493:
For large volume scientific datasets, such as satellite data and output of numerical climate, weather, or ocean models, specific binary serialization standards have been developed, e.g.
1226:, but users can register custom "reduction" and construction functions to support the pickling and unpickling of arbitrary types. Pickle was originally implemented as the pure Python 780:
as well as non-transient, non-static referenced objects are encoded into the stream. Each object that is referenced by the serialized object via a field that is not marked as
733:. Implementing the interface marks the class as "okay to serialize", and Java then handles serialization internally. There are no serialization methods defined on the 247:
For some of these features to be useful, architecture independence must be maintained. For example, for maximal use of distribution, a computer running on a different
2238: 1242:
project. In Python 3, users should always import the standard version, which attempts to import the accelerated version and falls back to the pure Python version.
1034:, there are network safe functions that always store their data in a format that is readable on any computer at a small cost of speed. These functions are named 1014:. Storable includes functions to serialize and deserialize Perl data structures to and from files or Perl scalars. In addition to serializing directly to files, 2290: 820:. Although JSON is originally based on a subset of JavaScript, there are boundary cases where JSON is not valid JavaScript. Specifically, JSON allows the 1340: 1447: 284:, where direct pointer references are converted to references based on name or position. The deserialization process includes an inverse step called 2180: 2660: 426:
is a lightweight plain-text alternative to XML, and is also commonly used for client-server communication in web applications. JSON is based on
591:, as binary data. As such, it is usually trivial to write custom serialization functions. Moreover, compiler-based solutions, such as the ODB 2076: 1490:, or other formats. Default implementations of these protocols can be generated by the compiler for types whose stored properties are also 336:
the serialized data. Yet, interoperability requires that applications be able to understand each other's serialization formats. Therefore,
1206:(with support for the External Data Representation (XDR) standard as described in RFC 1014). Finally, it is recommended that an object's 314: 1960: 2635: 490:
for short, doesn't refer to a single serialization format but instead several different variants, some human-readable and one binary.
565:
family of languages. There are also libraries available that add serialization support to languages that lack native support for it.
2923: 2011: 1552: 648:
provides a built-in mechanism for serialization of components (also called persistent objects), which is fully integrated with its
372: 1137: 2711: 1257:
which writes an ASCII text representation of an R object to a file or connection. A representation can be read from a file using
430:, but is independent of JavaScript and supported in many other programming languages. JSON is an open format, standardized as 313:
by potentially exposing private implementation details. Trivial implementations which serialize all data members may violate
2669: 2126: 952: 740: 229: 17: 2942: 2827: 2542:
Eddelbuettel, Dirk; Stokely, Murray; Ooms, Jeroen (2014). "RProtoBuf: Efficient Cross-Language Data Serialization in R".
726: 580:
do not provide serialization as any sort of high-level construct, but both languages support writing any of the built-in
2351:
Birrell, Andrew; Jones, Mike; Wobber, Ted (November 1987). "A simple and efficient implementation of a small database".
184:
In networking equipment hardware, the part that is responsible for serialization and deserialization is commonly called
1926: 1152: 649: 605: 754: 91: 1682: 1942: 772: 1348:, that is, they effectively become a sequence of bytes. Some objects cannot be serialized (doing so would raise a 1116:
structure, which is the only data structure of the language, can be serialized out through the built-in predicate
1607: 1409:
In general, non-recursive and non-sharing objects can be stored and retrieved in a human readable form using the
1073:
functions. PHP can serialize any of its data types except resources (file pointers, sockets, etc.). The built-in
588: 2587: 699:
type class defines a function that will extract the data from the string representation of the dumped data. The
2779: 2729: 2378: 271: 164: 31: 1896: 645: 592: 554: 542: 167:
an object in some situations. The opposite operation, extracting a data structure from a series of bytes, is
2494: 443: 2902: 1467: 951:. There are also many serializers by third parties. More than a dozen serializers are discussed and tested 933: 855: 386: 298: 149: 866:
modules, intended to work within the same version of Julia, and/or instance of the same system image. The
2704: 1750: 880: 558: 514: 2686:- Binary serialization with partial and random access, type system, RPC, type adaption, and text format 2655: 2443: 2188: 1265:
serializes an R object to a connection, the output being a raw vector coded in hexadecimal format. The
1168: 1454:
packages. A solution to this problem is SIXX, which is a package for multiple Smalltalks that uses an
1521:
serializes .NET objects and stores the resulting XML in a file. To reconstitute the objects, use the
1398: 1315: 1214: 1186:(with built-in support for basic scalar and collection types and able to support arbitrary types via 787:
Java does not use constructor to serialize objects. It is possible to serialize Java objects through
660: 534: 400:
In the late 1990s, a push to provide an alternative to the standard serialization protocols started:
157: 153: 133: 125: 2361: 2304: 1250: 1208: 899:. These two parts of the Lisp implementation are called the Printer and the Reader. The output of " 746:
There are three primary reasons why objects are not serializable by default and must implement the
744:
interface, which includes two special methods that are used to save and restore the object's state.
721: 573: 494: 73: 69: 53: 1187: 1577: 1547: 409: 2431: 1611: 1077:
function is often dangerous when used on completely untrusted data. For objects, there are two "
634: 2742: 2697: 2609: 2356: 2299: 1527: 608:(Microsoft) also provides serialization methodology as part of its Document-View architecture. 233: 2161: 1176: 2817: 2683: 1451: 601: 530: 378: 248: 218: 2947: 2457: 1572: 321: 260: 2512: 293:
Since both serializing and deserializing can be driven from common code (for example, the
8: 2757: 2051: 1078: 1026:
to deserialize such a scalar. This is useful for sending a complex data structure over a
777: 625: 2077:"faster and more compact serialization of symbols and strings · JuliaLang/julia@bb67ff2" 2015: 1042:, etc. There are no "n" functions for deserializing these structures â€” the regular 752:
Firstly, not all objects capture useful semantics in a serialized state. For example, a
2767: 2569: 2551: 2400: 2333: 2282: 1506: 691:
In Haskell, serialization is supported for types that are members of the Read and Show
479: 413: 310: 259:, memory layout, or simply different ways of representing data structures in different 61: 2256: 2220: 2202: 1848: 1701: 1482:), which allow instances of conforming types to be serialized to or deserialized from 2411: 2392: 2384: 2374: 2325: 2317: 1922: 1293: 843:
to appear unescaped in quoted strings, while ECMAScript 2018 and older does not. See
427: 286: 145: 2573: 2404: 2353:
Proceedings of the eleventh ACM Symposium on Operating systems principles - SOSP '87
1320: 1234:
module (also a built-in) offers improved performance (up to 1000 times faster). The
1175:
that records the instructions used to reconstruct the object. It is a cross-version
381:
Courier technology in the early 1980s influenced the first widely adopted standard.
2886: 2561: 2427: 2366: 2337: 2309: 1567: 1562: 1557: 1304: 1219: 844: 730: 676: 435: 382: 2737: 2673: 2666: 2274: 2037: 1617:
stream of bits, and to turn that stream of bits back into the original object(s).
1421:
method generates the text of a Smalltalk expression which – when evaluated using
1362: 1239: 1212:
be evaluable in the right environment, making it a rough match for Common Lisp's
1172: 526: 329: 212: 2476: 1192: 891:". A variable foo containing, for example, a list of arrays would be printed by 439: 2861: 2762: 2278: 2108: 1629: 1218:. Not all object types can be pickled automatically, especially ones that hold 1027: 944: 585: 562: 360: 251:
should be able to reliably reconstruct a serialized data stream, regardless of
121: 2678: 1202: 2936: 2891: 2881: 2774: 2720: 2477:"11.1. pickle — Python object serialization — Python 2.7.14rc1 documentation" 2396: 2388: 2321: 1510: 1487: 1197: 460: 356: 256: 177: 129: 2329: 1437:
serializers. In addition, bundled objects can be stored and retrieved using
1182: 709: 652:. The component's contents are saved to a DFM file and reloaded on-the-fly. 1374: 1022:
function to return a serialized copy of the data packed into a scalar, and
792: 581: 348: 325: 2565: 1133: 936:. Not all readers/writers support cyclic, recursive or shared structures. 821: 447: 2876: 2871: 2834: 2809: 2313: 1587: 1334: 1223: 925: 903:" is human readable; it uses lists demarked by parentheses, for example: 550: 390: 320:
To discourage competitors from making compatible products, publishers of
276: 141: 137: 2689: 2370: 720:
Java provides automatic serialization which requires that the object be
2907: 805: 692: 333: 252: 2595: 2143: 2094: 1724: 1657: 1442: 1269:
function allows to read an object from a connection or a raw vector.
956: 948: 538: 201: 2495:"pickle — Python object serialization — Python v3.0.1 documentation" 1787: 431: 394: 2439: 1582: 464: 337: 208: 72:
external links, and converting useful links where appropriate into
30:
This article is about data structure encoding. For other uses, see
2556: 1872: 1823: 1683:"Python 3.9.6 documentation - Python object serialization —pickle" 981:. While OCaml programming is statically type-checked, uses of the 324:
often keep the details of their programs' serialization formats a
2747: 1943:"Ask TOM "Serializing Java Objects into the database (and ge..."" 468: 1397:
is the most widely used library, or crate, for serialization in
104: 2896: 2854: 2844: 2839: 1426: 1109: 498: 417: 416:
web applications. XML is an open format, and standardized as a
352: 185: 1805: 1429:
to serialize and store objects. The easiest and most used are
1030:
or storing it in a database. When serializing structures with
347:
Many institutions, such as archives and libraries, attempt to
2822: 2784: 1277: 966: 596: 577: 472: 341: 237: 2912: 2866: 2849: 2799: 2789: 2752: 1483: 999: 995: 895:. Similarly an object can be read from a stream named s by 788: 672: 664: 630: 620: 616: 502: 453: 423: 405: 222: 2095:"HDF5.jl: Saving and loading data in the HDF5 file format" 1065:
originally implemented serialization through the built-in
2794: 1608:"C++ FAQ: "What's This "Serialization" Thing All About?"" 1455: 1062: 759: 668: 546: 476: 401: 200:
serializing data for transfer across wires and networks (
2513:"What's New In Python 3.0 — Python v3.1.5 documentation" 152:, this process is not straightforward. Serialization of 2541: 1985: 1303:
provides cross-language data serialization in R, using
1081:
methods" that can be implemented within a class â€”
671:
data. There are also third-party modules that support
2291:
ACM Transactions on Programming Languages and Systems
2283:"A Value Transmission Method for Abstract Data Types" 1230:
module, but, in versions of Python prior to 3.0, the
969:'s standard library provides marshalling through the 883:
data structure can be serialized with the functions "
163:
This process of serializing an object is also called
1393: 1054:" functions and their machine-specific equivalents. 785:
the reference graph is truncated and not serialized.
2109:"Julia: how stable are serialize() / deserialize()" 1770:"s11n.net: object serialization/persistence in C++" 1769: 1292:). Strings and files can be deserialized using the 750:
interface to access Java's serialization mechanism.
2350: 1120:and serialized-in through the built-in predicates 2471: 2469: 140:in primary storage devices) or transmitted (e.g. 56:may not follow Knowledge's policies or guidelines 2934: 1722: 1344:. These methods serialize to the standard class 1148:The core general serialization mechanism is the 533:for doing so. The languages which do so include 663:natively supports unmarshalling/marshalling of 508: 2466: 1155:module, alluding to the database systems term 762:. There is no context in which a deserialized 344:define their serialization formats in detail. 2705: 2273: 408:subset, was used to produce a human-readable 128:state into a format that can be stored (e.g. 2436:Python Programming Language – Legacy Website 2195: 2009: 1919:"Effective Java: Programming Language Guide" 1725:"XDR: External Data Representation Standard" 1050:deserialize structures serialized with the " 1002:provide serialization mechanisms, including 2661:Java 1.4 Object Serialization documentation 1824:"GitHub - YAML support for the Go language" 1702:"Safe Serialization Under Mutual Suspicion" 1687:Documentation - The Python Standard Library 771:Lastly, serialization allows access to non- 758:object is tied to the state of the current 619:allows data structures to be serialized to 2712: 2698: 2426: 2719: 2614:SIXX - Smalltalk Instance eXchange in XML 2555: 2360: 2303: 2014:. The timeless repository. Archived from 2003: 1873:"gob package - encoding/gob - pkg.go.dev" 1470:standard library provides two protocols, 156:does not include any of their associated 92:Learn how and when to remove this message 2924:Comparison of data-serialization formats 2012:"JSON: The JavaScript subset that isn't" 1553:Comparison of data serialization formats 373:Comparison of data serialization formats 366: 160:with which they were previously linked. 103: 2656:Java Object Serialization documentation 1652: 1650: 766:object would maintain useful semantics. 309:Serialization breaks the opacity of an 243:detecting changes in time-varying data. 14: 2935: 1332:, akin to the standard Unix utilities 1196:(with support for both binary and XML 791:and store them into a database. While 2693: 2178: 1916: 1910: 1699: 1509:implements serialization through the 1501: 858:implements serialization through the 796:re-constitutable on another machine. 695:. Every type that is a member of the 2636:"Swift Archival & Serialization" 2162:"PHP: Object Serialization - Manual" 2097:. 20 August 2017 – via GitHub. 1647: 1433:and binary storage formats based on 1384:and return an object of this class. 1089: â€” that are called from within 973:module and the Pervasives functions 947:has several serializers designed by 738:implementing another interface, the 359:—by storing them in some relatively 270:Even on a single machine, primitive 230:component-based software engineering 228:distributing objects, especially in 36: 27:Conversion process for computer data 2181:"Shocking News in PHP Exploitation" 2040:. ECMA TC39 committee. 22 May 2018. 924:. In many types of Lisp, including 24: 2355:. Vol. 11. pp. 149–154. 1921:(third ed.). Addison-Wesley. 1530:format using the built-in cmdlets 703:type class, in turn, contains the 604:, the S11n framework, and Cereal. 120:) is the process of translating a 25: 2959: 2649: 1605: 1458:-based format for serialization. 939: 529:elements or providing a standard 1767: 1159:to describe data serialization ( 41: 2628: 2602: 2580: 2544:Journal of Statistical Software 2535: 2529: 2523: 2505: 2487: 2420: 2344: 2267: 2249: 2231: 2213: 2172: 2154: 2136: 2119: 2101: 2087: 2069: 2044: 2030: 1978: 1953: 1935: 1889: 1865: 1841: 1816: 1798: 904: 196:Uses of serialization include: 1780: 1761: 1743: 1716: 1693: 1675: 1630:"Module: Marshal (Ruby 3.0.2)" 1622: 1599: 1261:. More specific, the function 1140:can be applied at that stage. 463:are used for serialization by 32:Serialization (disambiguation) 13: 1: 2179:Esser, Stephen (2009-11-28). 2038:"TC39 Proposal: Subsume JSON" 1593: 1318:includes the standard module 799: 2239:""write_term/[2,3]"" 2221:""Term reading and writing"" 2203:"PHP: Serializable - Manual" 2010:Holm, Magnus (15 May 2011). 1404: 1134:ISO Specification for Prolog 568: 509:Programming language support 387:External Data Representation 304: 299:Microsoft Foundation Classes 7: 2667:Durable Java: Serialization 2432:"Flattening Python Objects" 1541: 1188:encoding and decoding hooks 776:fields into a byte stream. 517:languages directly support 515:object-oriented programming 10: 2964: 2943:Data serialization formats 2679:XML Data Binding Resources 2444:Python Software Foundation 808:has included the built-in 686: 370: 29: 2921: 2808: 2728: 1897:"Text.Show Documentation" 1723:Sun Microsystems (1987). 1143: 1104: 640: 389:(XDR) in 1987. XDR is an 134:secondary storage devices 2672:25 November 2005 at the 1461: 1280:will serialize to file ( 1272: 1167:). Pickle uses a simple 1138:Definite Clause Grammars 961: 850: 845:the main article on JSON 822:Unicode line terminators 355:archives—in particular, 1731:. Network Working Group 1578:Google Protocol Buffers 1548:Commutation (telemetry) 1387: 1310: 1132:is standardized in the 998:modules available from 989: 874: 812:object and its methods 715: 611: 595:system for C++ and the 191: 2588:"MinneStore version 2" 1917:Bloch, Joshua (2018). 1478:(composed together as 1057: 804:Since ECMAScript 5.1, 393:, and standardized as 340:architectures such as 219:remote procedure calls 109: 2566:10.18637/jss.v071.i02 2257:""Term input/output"" 2144:"SERBENCH by aumcode" 1238:was adapted from the 655: 379:Xerox Network Systems 367:Serialization formats 261:programming languages 249:hardware architecture 107: 2314:10.1145/69622.357182 1849:"proto · pkg.go.dev" 1788:"cereal Docs - Main" 1573:Basic Encoding Rules 1245: 934:read–eval–print loop 727:java.io.Serializable 724:by implementing the 519:object serialization 328:. Some deliberately 322:proprietary software 62:improve this article 18:Object serialization 2430:(1 December 1994). 2371:10.1145/41457.37517 841:PARAGRAPH SEPARATOR 679:. Go also supports 410:text-based encoding 363:serialized format. 282:pointer unswizzling 74:footnote references 2225:www.swi-prolog.org 2127:".NET Serializers" 2056:The Julia Language 1806:"Package encoding" 1507:Windows PowerShell 1502:Windows PowerShell 1431:storeOn:/readFrom: 769:default condition. 448:ISO/IEC 21778:2017 418:W3C recommendation 338:remote method call 311:abstract data type 110: 2930: 2929: 2616:. 23 January 2010 2442:, United States: 2428:van Rossum, Guido 2412:dynamically typed 2148:aumcode.github.io 2113:stackoverflow.com 1947:asktom.oracle.com 1792:uscilab.github.io 1700:S. Miller, Mark. 1606:Cline, Marshall. 1253:has the function 428:JavaScript syntax 287:pointer swizzling 207:storing data (in 146:computer networks 102: 101: 94: 16:(Redirected from 2955: 2887:Protocol Buffers 2714: 2707: 2700: 2691: 2690: 2644: 2643: 2632: 2626: 2625: 2623: 2621: 2606: 2600: 2599: 2594:. Archived from 2584: 2578: 2577: 2559: 2539: 2533: 2527: 2521: 2520: 2509: 2503: 2502: 2491: 2485: 2484: 2473: 2464: 2463: 2452: 2450: 2424: 2418: 2417: 2364: 2348: 2342: 2341: 2307: 2287: 2281:(October 1982). 2275:Herlihy, Maurice 2271: 2265: 2264: 2253: 2247: 2246: 2235: 2229: 2228: 2217: 2211: 2210: 2199: 2193: 2192: 2187:. Archived from 2176: 2170: 2169: 2158: 2152: 2151: 2140: 2134: 2133: 2123: 2117: 2116: 2105: 2099: 2098: 2091: 2085: 2084: 2073: 2067: 2066: 2064: 2062: 2048: 2042: 2041: 2034: 2028: 2027: 2025: 2023: 2007: 2001: 2000: 1998: 1996: 1982: 1976: 1975: 1973: 1971: 1957: 1951: 1950: 1939: 1933: 1932: 1914: 1908: 1907: 1905: 1903: 1893: 1887: 1886: 1884: 1883: 1869: 1863: 1862: 1860: 1859: 1845: 1839: 1838: 1836: 1834: 1820: 1814: 1813: 1802: 1796: 1795: 1784: 1778: 1777: 1765: 1759: 1758: 1747: 1741: 1740: 1738: 1736: 1720: 1714: 1713: 1697: 1691: 1690: 1679: 1673: 1672: 1670: 1668: 1654: 1645: 1644: 1642: 1640: 1626: 1620: 1619: 1610:. Archived from 1603: 1563:Hibernate (Java) 1558:Container format 1537: 1533: 1524: 1520: 1516: 1497: 1493: 1481: 1477: 1473: 1448:Ambrai Smalltalk 1440: 1436: 1432: 1427:Squeak Smalltalk 1424: 1420: 1416: 1412: 1396: 1383: 1379: 1371: 1368:should return a 1367: 1360: 1356: 1351: 1347: 1343: 1337: 1331: 1327: 1323: 1305:Protocol Buffers 1302: 1298: 1291: 1287: 1283: 1268: 1264: 1260: 1256: 1237: 1233: 1229: 1220:operating system 1217: 1211: 1205: 1195: 1185: 1153:standard library 1151: 1131: 1127: 1123: 1119: 1100: 1096: 1092: 1088: 1084: 1076: 1072: 1068: 1053: 1049: 1045: 1041: 1037: 1033: 1025: 1021: 1017: 1013: 1009: 1005: 984: 980: 976: 972: 931: 923: 922: 919: 916: 913: 910: 907: 902: 898: 894: 890: 886: 869: 865: 861: 842: 839: 837: 832: 829: 827: 819: 818:JSON.stringify() 815: 811: 783: 765: 757: 749: 743: 736: 729: 706: 702: 698: 677:Protocol Buffers 628: 383:Sun Microsystems 213:hard disk drives 97: 90: 86: 83: 77: 45: 44: 37: 21: 2963: 2962: 2958: 2957: 2956: 2954: 2953: 2952: 2933: 2932: 2931: 2926: 2917: 2804: 2724: 2718: 2674:Wayback Machine 2652: 2647: 2634: 2633: 2629: 2619: 2617: 2608: 2607: 2603: 2598:on 11 May 2008. 2586: 2585: 2581: 2540: 2536: 2530: 2524: 2517:docs.python.org 2511: 2510: 2506: 2499:docs.python.org 2493: 2492: 2488: 2481:docs.python.org 2475: 2474: 2467: 2461:manner :-) 2448: 2446: 2425: 2421: 2381: 2362:10.1.1.100.1457 2349: 2345: 2285: 2279:Liskov, Barbara 2272: 2268: 2255: 2254: 2250: 2243:sicstus.sics.se 2237: 2236: 2232: 2219: 2218: 2214: 2201: 2200: 2196: 2177: 2173: 2160: 2159: 2155: 2142: 2141: 2137: 2125: 2124: 2120: 2107: 2106: 2102: 2093: 2092: 2088: 2075: 2074: 2070: 2060: 2058: 2052:"Serialization" 2050: 2049: 2045: 2036: 2035: 2031: 2021: 2019: 2008: 2004: 1994: 1992: 1984: 1983: 1979: 1969: 1967: 1959: 1958: 1954: 1941: 1940: 1936: 1929: 1915: 1911: 1901: 1899: 1895: 1894: 1890: 1881: 1879: 1871: 1870: 1866: 1857: 1855: 1847: 1846: 1842: 1832: 1830: 1822: 1821: 1817: 1812:. 12 July 2021. 1804: 1803: 1799: 1786: 1785: 1781: 1768:beal, stephan. 1766: 1762: 1751:"Serialization" 1749: 1748: 1744: 1734: 1732: 1721: 1717: 1698: 1694: 1681: 1680: 1676: 1666: 1664: 1656: 1655: 1648: 1638: 1636: 1628: 1627: 1623: 1614:on 2015-04-05. 1604: 1600: 1596: 1544: 1535: 1531: 1522: 1518: 1514: 1504: 1495: 1491: 1479: 1475: 1471: 1464: 1438: 1434: 1430: 1422: 1418: 1414: 1410: 1407: 1392: 1390: 1381: 1377: 1369: 1365: 1363:instance method 1358: 1354: 1349: 1345: 1339: 1333: 1329: 1325: 1324:with 2 methods 1319: 1313: 1300: 1296: 1289: 1285: 1281: 1275: 1266: 1262: 1258: 1254: 1248: 1240:Unladen Swallow 1235: 1231: 1227: 1222:resources like 1213: 1207: 1201: 1191: 1181: 1173:virtual machine 1149: 1146: 1129: 1125: 1121: 1117: 1107: 1098: 1094: 1090: 1086: 1082: 1074: 1070: 1066: 1060: 1051: 1047: 1043: 1039: 1035: 1031: 1023: 1019: 1015: 1011: 1007: 1003: 992: 982: 978: 974: 970: 964: 942: 929: 920: 917: 914: 911: 908: 905: 900: 896: 892: 888: 884: 877: 867: 863: 859: 853: 840: 835: 834: 830: 825: 824: 817: 813: 809: 802: 786: 781: 770: 767: 763: 753: 751: 747: 745: 739: 734: 725: 718: 704: 700: 696: 689: 658: 643: 635:SerializeJSON() 624: 614: 602:Boost Framework 571: 527:syntactic sugar 523:object archival 511: 375: 369: 307: 194: 173:unserialization 171:, (also called 169:deserialization 98: 87: 81: 78: 59: 50:This article's 46: 42: 35: 28: 23: 22: 15: 12: 11: 5: 2961: 2951: 2950: 2945: 2928: 2927: 2922: 2919: 2918: 2916: 2915: 2910: 2905: 2900: 2894: 2889: 2884: 2879: 2874: 2869: 2864: 2859: 2858: 2857: 2847: 2842: 2837: 2832: 2831: 2830: 2820: 2814: 2812: 2806: 2805: 2803: 2802: 2797: 2792: 2787: 2782: 2777: 2772: 2771: 2770: 2765: 2760: 2758:Web Encryption 2750: 2745: 2740: 2734: 2732: 2730:Human readable 2726: 2725: 2717: 2716: 2709: 2702: 2694: 2688: 2687: 2681: 2676: 2664: 2658: 2651: 2650:External links 2648: 2646: 2645: 2640:www.github.com 2627: 2601: 2579: 2534: 2528: 2522: 2504: 2486: 2465: 2419: 2379: 2343: 2305:10.1.1.87.5301 2298:(4): 527–551. 2266: 2248: 2230: 2212: 2194: 2191:on 2012-01-06. 2171: 2153: 2135: 2118: 2100: 2086: 2068: 2043: 2029: 2018:on 13 May 2012 2002: 1977: 1952: 1934: 1928:978-0134685991 1927: 1909: 1888: 1864: 1840: 1815: 1797: 1779: 1760: 1742: 1715: 1692: 1674: 1646: 1621: 1597: 1595: 1592: 1591: 1590: 1585: 1580: 1575: 1570: 1565: 1560: 1555: 1550: 1543: 1540: 1503: 1500: 1488:property lists 1463: 1460: 1435:SmartRefStream 1417:protocol. The 1406: 1403: 1389: 1386: 1380:should take a 1312: 1309: 1274: 1271: 1247: 1244: 1145: 1142: 1106: 1103: 1059: 1056: 1028:network socket 991: 988: 963: 960: 945:.NET Framework 941: 940:.NET Framework 938: 876: 873: 852: 849: 831:LINE SEPARATOR 801: 798: 741:Externalizable 717: 714: 688: 685: 657: 654: 642: 639: 626:<cfwddx> 613: 610: 586:plain old data 570: 567: 510: 507: 501:and the older 461:Property lists 385:published the 371:Main article: 368: 365: 361:human-readable 357:database dumps 306: 303: 245: 244: 241: 226: 221:, e.g., as in 216: 205: 193: 190: 122:data structure 112:In computing, 100: 99: 54:external links 49: 47: 40: 26: 9: 6: 4: 3: 2: 2960: 2949: 2946: 2944: 2941: 2940: 2938: 2925: 2920: 2914: 2911: 2909: 2906: 2904: 2901: 2898: 2895: 2893: 2890: 2888: 2885: 2883: 2882:Property list 2880: 2878: 2875: 2873: 2870: 2868: 2865: 2863: 2860: 2856: 2853: 2852: 2851: 2848: 2846: 2843: 2841: 2838: 2836: 2833: 2829: 2826: 2825: 2824: 2821: 2819: 2816: 2815: 2813: 2811: 2807: 2801: 2798: 2796: 2793: 2791: 2788: 2786: 2783: 2781: 2778: 2776: 2775:Property list 2773: 2769: 2768:Web Signature 2766: 2764: 2761: 2759: 2756: 2755: 2754: 2751: 2749: 2746: 2744: 2741: 2739: 2736: 2735: 2733: 2731: 2727: 2722: 2721:Data exchange 2715: 2710: 2708: 2703: 2701: 2696: 2695: 2692: 2685: 2682: 2680: 2677: 2675: 2671: 2668: 2665: 2662: 2659: 2657: 2654: 2653: 2642:. 2018-12-02. 2641: 2637: 2631: 2615: 2611: 2605: 2597: 2593: 2589: 2583: 2575: 2571: 2567: 2563: 2558: 2553: 2549: 2545: 2538: 2532: 2526: 2518: 2514: 2508: 2500: 2496: 2490: 2482: 2478: 2472: 2470: 2462: 2459: 2445: 2441: 2437: 2433: 2429: 2423: 2416: 2413: 2406: 2402: 2398: 2394: 2390: 2386: 2382: 2376: 2372: 2368: 2363: 2358: 2354: 2347: 2339: 2335: 2331: 2327: 2323: 2319: 2315: 2311: 2306: 2301: 2297: 2293: 2292: 2284: 2280: 2276: 2270: 2262: 2258: 2252: 2244: 2240: 2234: 2226: 2222: 2216: 2208: 2204: 2198: 2190: 2186: 2182: 2175: 2167: 2163: 2157: 2149: 2145: 2139: 2132: 2128: 2122: 2114: 2110: 2104: 2096: 2090: 2082: 2078: 2072: 2057: 2053: 2047: 2039: 2033: 2017: 2013: 2006: 1991: 1987: 1981: 1966: 1962: 1956: 1948: 1944: 1938: 1930: 1924: 1920: 1913: 1898: 1892: 1878: 1874: 1868: 1854: 1850: 1844: 1829: 1825: 1819: 1811: 1807: 1801: 1793: 1789: 1783: 1775: 1771: 1764: 1756: 1755:www.boost.org 1752: 1746: 1730: 1726: 1719: 1712: 1707: 1703: 1696: 1688: 1684: 1678: 1663: 1659: 1653: 1651: 1635: 1631: 1625: 1618: 1613: 1609: 1602: 1598: 1589: 1586: 1584: 1581: 1579: 1576: 1574: 1571: 1569: 1566: 1564: 1561: 1559: 1556: 1554: 1551: 1549: 1546: 1545: 1539: 1529: 1523:Import-CliXML 1519:Export-CliXML 1515:Export-CliXML 1512: 1508: 1499: 1489: 1485: 1469: 1459: 1457: 1453: 1449: 1444: 1439:ImageSegments 1428: 1402: 1400: 1395: 1385: 1376: 1364: 1342: 1336: 1322: 1317: 1308: 1306: 1295: 1279: 1270: 1252: 1243: 1241: 1225: 1221: 1216: 1210: 1204: 1199: 1198:property list 1194: 1189: 1184: 1178: 1174: 1170: 1166: 1165:deserializing 1162: 1158: 1154: 1141: 1139: 1135: 1115: 1111: 1102: 1095:unserialize() 1080: 1075:unserialize() 1071:unserialize() 1064: 1055: 1029: 1018:includes the 1001: 997: 987: 968: 959: 958: 954: 950: 946: 937: 935: 927: 915:"x" 882: 872: 864:deserialize() 857: 848: 846: 823: 807: 797: 794: 790: 779: 774: 761: 756: 742: 732: 728: 723: 713: 711: 694: 684: 682: 678: 674: 670: 666: 662: 653: 651: 647: 638: 636: 632: 627: 622: 618: 609: 607: 606:MFC framework 603: 598: 594: 590: 587: 584:, as well as 583: 579: 575: 566: 564: 560: 556: 552: 548: 544: 540: 536: 532: 528: 525:), either by 524: 520: 516: 506: 504: 500: 496: 491: 489: 485: 484:Property list 481: 478: 474: 470: 466: 462: 458: 455: 451: 449: 445: 441: 437: 433: 429: 425: 421: 419: 415: 411: 407: 403: 398: 396: 392: 388: 384: 380: 374: 364: 362: 358: 354: 350: 345: 343: 339: 335: 331: 327: 323: 318: 316: 315:encapsulation 312: 302: 300: 296: 291: 289: 288: 283: 279: 278: 273: 268: 264: 262: 258: 257:byte ordering 254: 250: 242: 239: 235: 231: 227: 224: 220: 217: 214: 210: 206: 203: 199: 198: 197: 189: 187: 182: 180: 179: 178:unmarshalling 174: 170: 166: 161: 159: 155: 151: 147: 143: 139: 135: 131: 127: 123: 119: 118:serialisation 115: 114:serialization 106: 96: 93: 85: 75: 71: 70:inappropriate 67: 63: 57: 55: 48: 39: 38: 33: 19: 2639: 2630: 2618:. Retrieved 2613: 2610:"What's new" 2604: 2596:the original 2591: 2582: 2547: 2543: 2537: 2531: 2525: 2516: 2507: 2498: 2489: 2480: 2454: 2447:. Retrieved 2435: 2422: 2408: 2352: 2346: 2295: 2289: 2269: 2260: 2251: 2242: 2233: 2224: 2215: 2206: 2197: 2189:the original 2184: 2174: 2165: 2156: 2147: 2138: 2130: 2121: 2112: 2103: 2089: 2080: 2071: 2059:. Retrieved 2055: 2046: 2032: 2022:23 September 2020:. Retrieved 2016:the original 2005: 1993:. Retrieved 1990:www.json.org 1989: 1980: 1968:. Retrieved 1965:MDN Web Docs 1964: 1955: 1946: 1937: 1918: 1912: 1900:. Retrieved 1891: 1880:. Retrieved 1876: 1867: 1856:. Retrieved 1852: 1843: 1831:. Retrieved 1827: 1818: 1809: 1800: 1791: 1782: 1773: 1763: 1754: 1745: 1733:. Retrieved 1728: 1718: 1709: 1705: 1695: 1686: 1677: 1665:. Retrieved 1661: 1637:. Retrieved 1634:ruby-doc.org 1633: 1624: 1615: 1612:the original 1601: 1505: 1465: 1408: 1391: 1375:class method 1314: 1276: 1249: 1224:file handles 1215:print-object 1177:customisable 1164: 1160: 1156: 1147: 1130:write_term/3 1118:write_term/3 1113: 1108: 1099:Serializable 1061: 993: 975:output_value 965: 943: 930:print-object 879:Generally a 878: 854: 814:JSON.parse() 803: 748:Serializable 735:Serializable 719: 693:type classes 690: 680: 659: 644: 615: 572: 522: 518: 512: 492: 487: 483: 459: 452: 422: 399: 397:(RFC 4506). 376: 349:future proof 346: 326:trade secret 319: 308: 297:function in 294: 292: 285: 281: 275: 269: 265: 246: 195: 183: 176: 172: 168: 162: 142:data streams 138:data buffers 117: 113: 111: 108:Flow diagram 88: 79: 64:by removing 51: 2948:Persistence 2877:MessagePack 2872:FlatBuffers 2862:Cap'n Proto 2592:SourceForge 2261:gprolog.org 2207:www.php.net 1706:ERights.org 1588:Apache Avro 1294:polymorphic 1267:unserialize 1126:read_term/2 1101:interface. 1091:serialize() 1067:serialize() 979:input_value 926:Common Lisp 893:(print foo) 860:serialize() 629:tag and to 551:Objective-C 391:open format 277:unswizzling 165:marshalling 82:August 2024 2937:Categories 2458:concurrent 2380:089791242X 2166:ca.php.net 1902:15 January 1882:2022-03-04 1877:pkg.go.dev 1858:2021-06-22 1853:pkg.go.dev 1810:pkg.go.dev 1594:References 1568:XML Schema 1536:Export-CSV 1532:Import-CSV 1299:function. 1284:) or to a 1200:formats). 1161:unpickling 1087:__wakeup() 1012:FreezeThaw 806:JavaScript 800:JavaScript 778:Primitives 637:function. 582:data types 561:, and the 480:frameworks 253:endianness 150:references 2763:Web Token 2684:Databoard 2557:1401.7372 2397:476062921 2389:0163-5980 2357:CiteSeerX 2322:0164-0925 2300:CiteSeerX 2185:Suspekt.. 1658:"Marshal" 1496:Encodable 1492:Decodable 1476:Decodable 1472:Encodable 1443:metaclass 1423:readFrom: 1415:readFrom: 1405:Smalltalk 1350:TypeError 1301:RProtoBuf 1263:serialize 1083:__sleep() 949:Microsoft 782:transient 773:transient 731:interface 633:with the 623:with the 569:C and C++ 539:Smalltalk 531:interface 330:obfuscate 305:Drawbacks 295:Serialize 209:databases 202:messaging 66:excessive 2908:uuencode 2670:Archived 2574:36239952 2440:Delaware 2405:12908261 2330:67989840 1995:22 March 1970:22 March 1774:s11n.net 1735:July 11, 1729:RFC 1014 1583:Wikibase 1542:See also 1511:built-in 1419:storeOn: 1411:storeOn: 1290:mold/all 1282:save/all 1209:__repr__ 1193:plistlib 1157:pickling 1048:retrieve 1032:Storable 1016:Storable 1008:JSON::XS 1004:Storable 994:Several 897:(read s) 513:Several 465:NeXTSTEP 444:ECMA-404 332:or even 232:such as 2748:EDIFACT 2723:formats 2620:25 July 2449:6 April 2338:8126961 2115:. 2014. 2061:25 July 1833:25 July 1667:25 July 1639:25 July 1513:cmdlet 1480:Codable 1341:restore 1321:Marshal 1286:string! 1236:cPickle 1232:cPickle 1171:-based 1040:nfreeze 983:Marshal 971:Marshal 887:" and " 868:HDF5.jl 687:Haskell 589:structs 469:GNUstep 334:encrypt 272:pointer 158:methods 154:objects 60:Please 52:use of 2897:Cyphal 2892:Thrift 2855:UBJSON 2845:Base64 2840:Base32 2810:Binary 2572:  2403:  2395:  2387:  2377:  2359:  2336:  2328:  2320:  2302:  2081:GitHub 1986:"JSON" 1961:"JSON" 1925:  1828:GitHub 1711:model. 1382:String 1370:String 1361:. The 1346:String 1228:pickle 1203:xdrlib 1150:pickle 1144:Python 1122:read/1 1110:Prolog 1105:Prolog 1036:nstore 1020:freeze 955:. and 838: 836:U+2029 828: 826:U+2028 764:Thread 755:Thread 722:marked 710:binary 646:Delphi 641:Delphi 555:Delphi 543:Python 499:netCDF 488:p-list 475:, and 446:, and 438:  432:STD 90 395:STD 67 353:backup 351:their 240:, etc. 186:SerDes 126:object 2823:ASN.1 2785:Rebol 2570:S2CID 2552:arXiv 2550:(2). 2415:done. 2401:S2CID 2334:S2CID 2286:(PDF) 1662:OCaml 1468:Swift 1462:Swift 1394:Serde 1378:_load 1366:_dump 1359:_load 1355:_dump 1278:REBOL 1273:REBOL 1169:stack 1079:magic 967:OCaml 962:OCaml 901:print 889:print 856:Julia 851:Julia 793:Swing 597:gSOAP 486:, or 473:macOS 404:, an 342:CORBA 238:CORBA 211:, on 144:over 130:files 2913:yEnc 2899:DSDL 2867:CBOR 2850:BSON 2835:Avro 2800:YAML 2790:TOML 2753:JSON 2738:Atom 2622:2021 2451:2017 2393:OCLC 2385:ISSN 2375:ISBN 2326:OCLC 2318:ISSN 2063:2021 2024:2016 1997:2018 1972:2018 1923:ISBN 1904:2014 1835:2021 1737:2011 1669:2021 1641:2021 1534:and 1484:JSON 1474:and 1466:The 1399:Rust 1388:Rust 1357:and 1338:and 1335:dump 1330:load 1328:and 1326:dump 1316:Ruby 1311:Ruby 1297:load 1259:dget 1255:dput 1183:json 1163:for 1124:and 1114:term 1093:and 1085:and 1069:and 1046:and 1044:thaw 1024:thaw 1010:and 1000:CPAN 996:Perl 990:Perl 977:and 957:here 953:here 885:read 881:Lisp 875:Lisp 833:and 816:and 810:JSON 789:JDBC 716:Java 705:show 701:Show 697:Read 681:Gobs 675:and 673:YAML 667:and 665:JSON 631:JSON 621:WDDX 617:CFML 612:CFML 576:and 563:.NET 559:Java 535:Ruby 521:(or 503:GRIB 454:YAML 440:8259 424:JSON 414:Ajax 406:SGML 377:The 223:SOAP 192:Uses 116:(or 2903:XDR 2828:SMI 2818:AMF 2795:XML 2780:RDF 2743:CSV 2562:doi 2367:doi 2310:doi 1528:CSV 1494:or 1456:XML 1452:RPC 1190:). 1112:'s 1063:PHP 1058:PHP 912:2.9 760:JVM 669:XML 650:IDE 593:ORM 578:C++ 547:PHP 495:HDF 477:iOS 442:), 436:RFC 402:XML 280:or 234:COM 181:). 175:or 132:in 124:or 68:or 2939:: 2638:. 2612:. 2590:. 2568:. 2560:. 2548:71 2546:. 2515:. 2497:. 2479:. 2468:^ 2453:. 2438:. 2434:. 2407:. 2399:. 2391:. 2383:. 2373:. 2365:. 2332:. 2324:. 2316:. 2308:. 2294:. 2288:. 2277:; 2259:. 2241:. 2223:. 2205:. 2183:. 2164:. 2146:. 2129:. 2111:. 2079:. 2054:. 1988:. 1963:. 1945:. 1875:. 1851:. 1826:. 1808:. 1790:. 1772:. 1753:. 1727:. 1708:. 1704:. 1685:. 1660:. 1649:^ 1632:. 1538:. 1517:. 1498:. 1486:, 1401:. 1307:. 1038:, 1006:, 862:/ 847:. 712:. 683:. 661:Go 656:Go 557:, 553:, 549:, 545:, 541:, 537:, 505:. 497:, 482:. 471:, 467:, 450:. 420:. 317:. 290:. 263:. 236:, 215:). 204:). 188:. 136:, 2713:e 2706:t 2699:v 2663:. 2624:. 2576:. 2564:: 2554:: 2519:. 2501:. 2483:. 2369:: 2340:. 2312:: 2296:4 2263:. 2245:. 2227:. 2209:. 2168:. 2150:. 2083:. 2065:. 2026:. 1999:. 1974:. 1949:. 1931:. 1906:. 1885:. 1861:. 1837:. 1794:. 1776:. 1757:. 1739:. 1689:. 1671:. 1643:. 1413:/ 1288:( 1251:R 1246:R 1052:n 921:) 918:y 909:4 906:( 574:C 434:( 225:. 95:) 89:( 84:) 80:( 76:. 58:. 34:. 20:)

Index

Object serialization
Serialization (disambiguation)
external links
improve this article
excessive
inappropriate
footnote references
Learn how and when to remove this message

data structure
object
files
secondary storage devices
data buffers
data streams
computer networks
references
objects
methods
marshalling
unmarshalling
SerDes
messaging
databases
hard disk drives
remote procedure calls
SOAP
component-based software engineering
COM
CORBA

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑