# Artifact-specific packages

**URL:** <https://discourse.julialang.org/t/artifact-specific-packages/88803>\
**Category:** Package Management\
**Created:** [October 16, 2022, 2:50pm UTC](https://discourse.julialang.org/t/artifact-specific-packages/88803 "2022-10-16T14:50:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gregstrq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gregstrq/32/20620_2.png) [@Gregstrq](https://discourse.julialang.org/u/Gregstrq)\
**Post date:** [October 16, 2022, 2:50pm UTC](https://discourse.julialang.org/t/artifact-specific-packages/88803/1 "2022-10-16T14:50:13Z")

</div>

I want to bundle together with my package a “.jld2” file with a DataFrame.  
This DataFrame is provided as an alternative option: it is not loaded by default, however, I am going to supplement the package with a function, that loads it if needed.

There are quite a few package, that are only needed in the case the user decides to download this DataFrame: JLD2, DataFrames, etc.  
Is there a way to isolate artifact-specific packages, so that they are pulled only if the artifact is used?

---

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [October 16, 2022, 7:27pm UTC](https://discourse.julialang.org/t/artifact-specific-packages/88803/2 "2022-10-16T19:27:42Z")

</div>

Does [DataDeps.jl](https://github.com/oxinabox/DataDeps.jl) or [Requires.jl](https://github.com/JuliaPackaging/Requires.jl) do what you are looking for?

---

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [October 16, 2022, 9:01pm UTC](https://discourse.julialang.org/t/artifact-specific-packages/88803/3 "2022-10-16T21:01:48Z")

</div>

The obvious no-dependency solution is to use serialization instead of JLD2, and a base julia table (vector-of-namedtuples or namedtuple-of-vectors) instead of DataFrames. Then you only need a lazy artifact with data itself.  
Would that work for you?

---

<div class="post-metadata">

**Author:** ![Gregstrq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gregstrq/32/20620_2.png) [@Gregstrq](https://discourse.julialang.org/u/Gregstrq)\
**Post date:** [October 16, 2022, 9:02pm UTC](https://discourse.julialang.org/t/artifact-specific-packages/88803/4 "2022-10-16T21:02:55Z")

</div>

In the end, I have decided to split this functionality into a package of its own.
