# Why HTTP.jl is not in Julia Core?

**URL:** <https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426>\
**Category:** Internals & Design\
**Tags:** question, discussion\
**Created:** [August 2, 2023, 11:44pm UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426 "2023-08-02T23:44:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![DeevsDeevs](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/deevsdeevs/32/52039_2.png) [@DeevsDeevs](https://discourse.julialang.org/u/DeevsDeevs)\
**Post date:** [August 2, 2023, 11:44pm UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/1 "2023-08-02T23:44:36Z")

</div>

Hello Julia community,

I have been using Julia for some time now and have found it to be an excellent language for various applications. However, I have noticed that HTTP.jl is not integrated into the Julia core, unlike many other programming languages that have built-in HTTP functionalities.

I believe that having HTTP functionality as part of the core could be a significant advantage for Julia. It would make it more convenient for developers to work with web-related tasks without the need to install additional packages.

I am curious about the reasons behind the decision not to include HTTP.jl in the core and whether there are any plans or discussions about integrating it in the future. As a user, I feel that having core support for HTTP would contribute to a smoother and more seamless experience, especially for newcomers to the language.

Furthermore, I wonder if there are any specific challenges or concerns that prevent the main developers from assisting in the development of HTTP.jl and integrating it into Julia’s core. Are there certain technical or design considerations that need to be addressed before such integration can take place?

I genuinely believe that collaboration between the main developers and package maintainers could lead to an ideal HTTP package that aligns with the overall goals of Julia. I am interested in understanding the development process and any community efforts that could support such integration.

---

<div class="post-metadata">

**Author:** ![algunion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/algunion/32/51630_2.png) [@algunion](https://discourse.julialang.org/u/algunion)\
**Post date:** [August 3, 2023, 1:57am UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/2 "2023-08-03T01:57:21Z")

</div>

Hello @DeevsDeevs and welcome to Julia Discourse,

Julia has built-in HTTP functionality in its standard library via `Downloads`:  
[https://docs.julialang.org/en/v1/stdlib/Downloads/](https://docs.julialang.org/en/v1/stdlib/Downloads/)

Now, I understand why `HTTP.jl` seems attractive (I am also using it) - but taking a community package and integrating it with the core language might now work for various reasons (a fast one I can think of is to not confine the bug fixes and the implementation of the future feature to the pace of Julia).

There was no such decision as _to not include HTTP.jl in the core_ as this would be out of discussion anyway (in the same way, there is no scrutiny of community packages with the goal of including something in the core language).

I would formulate it more like “_the absence of any HTTP.jl-related decisions_” instead of “_a decision not to include HTTP.jl_”.

I can think of some packages that are _closer_ to the language itself (like `PrecompileTools.jl` and `JuliaSyntax.jl` - but these are exceptional cases).

Given the `Downloads` existence and the language-related workload, I think it is understandable why the main developers wouldn’t actively participate in the development of `HTTP.jl`.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [August 3, 2023, 8:15am UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/3 "2023-08-03T08:15:22Z")

</div>

We’re actually trying to pull as many libraries out of “Julia core” as possible, particularly out of the main JuliaLang/julia repository. For the most part having a package fully integrated into Julia slows down the package’s development. The latest one to leave is [GitHub - JuliaData/DelimitedFiles.jl: A package for reading and writing files with delimited values (Originally a Julia stdlib)](https://github.com/JuliaData/DelimitedFiles.jl) .

In the case of HTTP.jl being outside of Julia means that it iterate faster and make some independent decisions. One important example is using OpenSSL rather than mbedTLS.

What I suppose you really want is for the package to be installed by default.

In summary, having HTTP.jl within “core” Julia will slow down it development and prevent it from making independent design choices. Meanwhile, installing the package is not very difficult.

What I am confused about is what kind of difficulties are you encountering by not having HTTP.jl installed by default? What kind of difficulties are encountering that make it difficult to install HTTP.jl? What advantages do you think having HTTP.jl in “core” bring? What problems would this solve?

---

<div class="post-metadata">

**Author:** ![DeevsDeevs](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/deevsdeevs/32/52039_2.png) [@DeevsDeevs](https://discourse.julialang.org/u/DeevsDeevs)\
**Post date:** [August 3, 2023, 8:32am UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/4 "2023-08-03T08:32:38Z")

</div>

Perhaps I was too categorical that HTTP is required in core. The question is rather that a package so important for the language should conform to the core standards, as well as be supported by the main developers.  
Since there are ambiguous solutions there now, and the package itself is not in the best condition.

---

<div class="post-metadata">

**Author:** ![Anastas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/anastas/32/36652_2.png) [@Anastas](https://discourse.julialang.org/u/Anastas)\
**Post date:** [August 3, 2023, 8:56am UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/5 "2023-08-03T08:56:02Z")

</div>

This post was temporarily hidden by the community for possibly being off-topic, unfocused, inappropriate, or spammy.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [August 3, 2023, 9:01am UTC](https://discourse.julialang.org/t/why-http-jl-is-not-in-julia-core/102426/6 "2023-08-03T09:01:40Z")

</div>

> [@DeevsDeevs](#):
>
> The question is rather that a package so important for the language

This is highly subjective. Many people (like me) use Julia for numerical computing and a HTTP client/server is definitely not something that is important in this case. You can say the same thing about people using Julia for web stuff; Why does Julia have linear algebra support out of the box? This is mostly for historical reasons I would say. The linear algebra functionality would most likely have evolved faster if it was not included as a standard library. Note also that even though LinearAlgebra is a standard library you have to reach for packages for many tasks. In some cases because packages do things better, and in some cases because the functionality just doesn’t exist in LinearAlgebra.

> [@DeevsDeevs](#):
>
> be supported by the main developers.

If you look at the [contributors on JuliaLang/julia](https://github.com/JuliaLang/julia/graphs/contributors) and the contributors on [JuliaWeb/HTTP.jl](https://github.com/JuliaWeb/HTTP.jl/graphs/contributors) you definitely see an overlap. Note though, that the skillset required to contribute to the Julia compiler and the skillset required to contribute to an HTTP client/server library do not necessarily overlap, so you can’t expect the same people to be in charge for both projects.

> [@DeevsDeevs](#):
>
> Since there are ambiguous solutions there now, and the package itself is not in the best condition.

If you have issues with HTTP.jl I suggest you [open an issue](https://github.com/JuliaWeb/HTTP.jl/issues/new), the developers are very responsive in my experience.
