Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Serialization
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Conversion process for computer data}} {{About|data structure encoding}} {{External links|date=August 2024}} [[File:Serialization.jpg|thumb|upright=1.35|Flow diagram]] In computing, '''serialization''' (or '''serialisation''', also referred to as '''pickling''' in [[Python (programming language)|Python]]) is the process of translating a [[data structure]] or [[object (computer science)|object]] state into a format that can be stored (e.g. [[computer file|files]] in [[secondary storage devices]], [[data buffer]]s in primary storage devices) or transmitted (e.g. [[data stream]]s over [[computer networks]]) and reconstructed later (possibly in a different computer environment).<ref>{{ cite web | first = Marshall | last = Cline | url = http://www.parashift.com/c++-faq-lite/serialize-overview.html | title = C++ FAQ: "What's This "Serialization" Thing All About?" | archive-url = https://web.archive.org/web/20150405013606/http://isocpp.org/wiki/faq/serialization | archive-date = 2015-04-05 | quote = 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 stream of bits, and to turn that stream of bits back into the original object(s).}}</ref> 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 [[reference (computer science)|references]], this process is not straightforward. Serialization of [[object (computer science)|object]]s does not include any of their associated [[Method (computer science)|methods]] with which they were previously linked. This process of serializing an object is also called [[Marshalling (computer science)|marshalling]] an object in some situations.<ref>{{Cite web|url=https://docs.ruby-lang.org/en/master/Marshal.html|title=Module: Marshal (Ruby 3.0.2)|website=ruby-doc.org|access-date=25 July 2021}}</ref><ref name=ocaml>{{Cite web |title=Marshal |author= |website=OCaml |date= |access-date=25 July 2021 |url= https://ocaml.org/api/Marshal.html}}</ref><ref>{{Cite web|url=https://docs.python.org/3/library/pickle.html?highlight=marshalling#module-pickle|title=Python 3.9.6 documentation - Python object serialization โpickle|website=Documentation - The Python Standard Library }}</ref> The opposite operation, extracting a data structure from a series of bytes, is '''deserialization''', (also called '''unserialization''' or '''[[unmarshalling]]'''). In networking equipment hardware, the part that is responsible for serialization and deserialization is commonly called [[SerDes]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)