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