# When and why using serialization?

**URL:** <https://discourse.julialang.org/t/when-and-why-using-serialization/17975>\
**Category:** New to Julia\
**Created:** [November 25, 2018, 12:26pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975 "2018-11-25T12:26:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [November 25, 2018, 12:26pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975/1 "2018-11-25T12:26:18Z")

</div>

Hello.

Quite often I see at julia-discourse threads speaking about “serialization” on Julia.  
When and why do you use serialization? Just to save objects? or do you use it to share data between threads or something more obscure?

[https://docs.julialang.org/en/v1/stdlib/Serialization/#Serialization-1](https://docs.julialang.org/en/v1/stdlib/Serialization/#Serialization-1)

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 25, 2018, 12:37pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975/2 "2018-11-25T12:37:07Z")

</div>

Think of this as a trade-off:

```nohighlight
        ^
        | serialization
        |
support | 
for |
native | JLD2, BSON
types |                
        |              
        | Feather
        | HDF5
        | CSV
        +----------------------------->
             load data saved long ago

```

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [November 25, 2018, 12:44pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975/3 "2018-11-25T12:44:13Z")

</div>

Then you use it just as a mean to save data on disk?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [November 25, 2018, 12:49pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975/4 "2018-11-25T12:49:19Z")

</div>

Yes. But, as you noted, there are other possible uses.

---

<div class="post-metadata">

**Author:** ![Usor](https://avatars.discourse-cdn.com/v4/letter/u/8dc957/32.png) [@Usor](https://discourse.julialang.org/u/Usor)\
**Post date:** [January 4, 2020, 2:35pm UTC](https://discourse.julialang.org/t/when-and-why-using-serialization/17975/5 "2020-01-04T14:35:04Z")

</div>

Deserialization is unreliable, if versions are incompatible. Was this only the case for major version differences (e.g. 1.x → 2.x) and minor version differences (e.g. 1.1 → 1.2), not for patches (e.g. 1.2.1 → 1.2.2)?
