You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/comparisons/dataio/fileio.md
+39-11Lines changed: 39 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ There are many file formats, and they are good for different things. Some format
14
14
15
15
## Overview
16
16
Because most packages work for different files, they are not in direct competition, and a comparison does not make much sense. It is more appropriate to compare options that all operate on the same file type, or with the same purpose. With that said, here is a comparison of all the packages on this page:
There are three types of subsections under "Packages":
@@ -36,38 +36,56 @@ Images can be loaded with [FileIO.jl](#file-io). However, there are two other al
36
36
#### ImageIO.jl
37
37
{{badge ImageIO}}
38
38
39
-
### Saving Arbitrary Julia Objects
40
-
If it often useful to save variables stored in your julia session, and be able to redefine them in a new julia session. For example if one of the variables is the result of a long-running computation. There several packages that are good for this specific use case. The general recommendation is **JLD2.jl**.
39
+
### Saving Arbitrary Julia Objects (Serializatoin)
40
+
If it often useful to save variables stored in your julia session, and to be able to redefine them in a new julia session. For example if one of the variables is the result of a long-running computation. There several packages that are good for this specific use case. The general recommendation is **JLD2.jl**.
41
41
42
42
All options listed in this subsection support saving and loading just about anything you throw at it: Numbers, arrays, functions, even user-defined structs. This is generally done by saving a dictionary, where the keys are usually the variable name, and the values are the thing being saved:
43
+
43
44
```julia
44
-
julia>usingFileIO # FileIO uses JLD2 under the hood, given a .jld2 filename
> Serde is a Julia library for (de)serializing data to/from various formats. The library offers a simple and concise API for defining custom (de)serialization behavior for user-defined types.
86
+
87
+
Inspired by the serde.rs Rust library, it supports (de)serialization of the following data formats: JSON, TOML, XML, YAML, CSV, Query. Support for MsgPack and BSON is planned.
88
+
71
89
### CSV and other delimited files
72
90
CSV stands for comma seperated values, and comma is the most common delimiter in delimited files. Other common options include tab and semicolon. All delimited files are human readable, and use plain text encoding. This can make them especially easy to write, and read directly as plain text. The main drawback is that such delimited files are not the fastest nor the smallest option for working with data.
73
91
@@ -215,5 +233,15 @@ From its README:
215
233
*[Should I still be using JSON.jl?](https://discourse.julialang.org/t/should-i-still-be-using-json-jl/50809)
216
234
*[So many JSON libraries; which should I use? (reddit)](https://www.reddit.com/r/Julia/comments/ni7dgk/so_many_json_libraries_which_should_i_use/)
217
235
236
+
### JDF.jl
237
+
JDF is a DataFrames serialization format with the following goals:
238
+
- Fast save and load times
239
+
- Compressed storage on disk
240
+
- Enable disk-based data manipulation (not yet achieved)
JDF.jl is the Julia package for all things related to JDF.
244
+
218
245
246
+
## Disclaimer
219
247
This section could use some love. If you have used or developed Julia packages in this domain, we would love your help! Please visit the ["Contributing" section](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io#contributing) of the [repository that hosts this website](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io) for information on how to contribute.
0 commit comments