# Well over 10,000 (non-JLL) Julia packages, with JLLs up to 11,846 Julia registered packages. Congratulation Julia community!

**URL:** <https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702>\
**Category:** Community\
**Created:** [March 29, 2020, 9:23pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702 "2020-03-29T21:23:47Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [January 21, 2022, 12:53am UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/21 "2022-01-21T00:53:44Z")

</div>

We just hit 7000 packages (it’s IsotopicCalc.jl) and 49 more waiting in the package pipeline. Would be good to get relevant sites updated, [Julialang.org](http://Julialang.org), [JuliaComputing.com](http://JuliaComputing.com); and [Modulecounts.com](http://Modulecounts.com) which shows a blank line plus “0/day”.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [July 25, 2022, 11:04am UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/22 "2022-07-25T11:04:33Z")

</div>

Package 8000 is:

> **[GitHub - juliachem-jl/JuliaChem.jl: A research-grade quantum chemistry...](https://github.com/juliachem-jl/JuliaChem.jl)**
>
> A research-grade quantum chemistry program written in Julia - GitHub - juliachem-jl/JuliaChem.jl: A research-grade quantum chemistry program written in Julia

A 1000 new packages from one JuliaCon to the next is great!

one intriguing registered recently:

> **[GitHub - MichaelHatherly/SystemImageLoader.jl: A Julia package to load system...](https://github.com/MichaelHatherly/SystemImageLoader.jl)**
>
> A Julia package to load system images. Contribute to MichaelHatherly/SystemImageLoader.jl development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![gitboy16](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gitboy16/32/24906_2.png) [@gitboy16](https://discourse.julialang.org/u/gitboy16)\
**Post date:** [July 25, 2022, 1:13pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/23 "2022-07-25T13:13:25Z")

</div>

It would be interesting to have a bit of stats regarding these 8000 packages. How many are still maintained? How many are compatible with the last Julia version? How many are working on all platforms? How many of them are really used?..etc  
Personally, I 'd rather have 10 high quality packages than 1000 poor quality packages hence the reason of having a bit of stats on the julia package ecosystem would be interesting…

---

<div class="post-metadata">

**Author:** ![acxz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/acxz/32/16759_2.png) [@acxz](https://discourse.julialang.org/u/acxz)\
**Post date:** [July 25, 2022, 1:25pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/24 "2022-07-25T13:25:24Z")

</div>

I agree with this sentiment, and this idea was mentioned earlier in this thread. But how would be such a thing?

Some interesting facts I would like to see about each package would be the following:

Metric: Quantity

Active: Time of latest commit  
It would be pretty cool to see a histogram of all the packages with respect to their time of latest commit. I’d probably expect a flipped bell curve. Not sure tho.

Impact: Number of packages that depend on this package (caveat this discounts user facing packages)

Reliance: Number of packages it depends on  
If we are looking at the outneighbors of a package might as well look at the inneighbors, seems like an interesting metric (maybe not particulary useful tho)

idkwhattocallthis: Ratio of open PRs to open Issues (like a contribution to complain ratio?) I think this ratio can provide a bit of information on “activity” as well

Popularity: Stars on Github (this is to account for mature, but inactive packages like Calculus.jl, and also accounts for user facing packages. End users are more likely to star the direct package they are using than a lower level dependency.)

So I think overall the metric usefulness can be a function of impact and popularity  
The metric activity could be a function of active and the “PR to issue” ratio.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 25, 2022, 1:54pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/25 "2022-07-25T13:54:51Z")

</div>

And what will happen when we reach the 500.000 packages? Will they all still be in `regestries\General`? Now `General.tar.gz`~4.8 MB but the dir expands to ~28.800 files and 190 MB. Still manageable but is this going to be multipliable by 10, by 100?

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [July 25, 2022, 2:15pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/26 "2022-07-25T14:15:47Z")

</div>

the good news is that the tarball doesn’t need to be expanded, and at long as Julia doesn’t grow significantly faster than Moore’s law, we’ll be fine.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 25, 2022, 2:26pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/27 "2022-07-25T14:26:41Z")

</div>

But it is expanded.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [July 25, 2022, 2:38pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/28 "2022-07-25T14:38:26Z")

</div>

Not by default from Julia 1.7. If you are using Julia 1.7 or later and have an unpacked registry and don’t want that, just remove it, e.g. with

```julia
using Pkg
Pkg.Registry.rm("General")

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 25, 2022, 3:04pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/29 "2022-07-25T15:04:46Z")

</div>

Yes, I have Julia 1.7 (and _aboves_). But what that did was to remove the tar ball and left the directory, which is marked with an icon by turtoisegit meaning that is being version controlled.

![image](https://global.discourse-cdn.com/julialang/original/3X/f/e/febf0d4db10603563402067f6141d3982932da11.png)

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [July 25, 2022, 3:16pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/30 "2022-07-25T15:16:44Z")

</div>

Well, do `Registry.rm` twice in that case. There are three possible registry representations; git clone, unpacked tarball, and tarball. Apparently you had both of the first two at once.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 25, 2022, 5:10pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/31 "2022-07-25T17:10:16Z")

</div>

OK, running it twice deleted everything but a posterior `] up` brought back that tarball only. Let’s see how it behaves.

Thanks.

---

<div class="post-metadata">

**Author:** ![greatpet](https://avatars.discourse-cdn.com/v4/letter/g/e495f1/32.png) [@greatpet](https://discourse.julialang.org/u/greatpet)\
**Post date:** [July 25, 2022, 6:07pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/32 "2022-07-25T18:07:49Z")

</div>

For some more numerology, Julia’s number of GitHub stars hit 40 K today. It was displayed as 39.9 K yesterday, but now it’s at 39.95 K and gets rounded up to 40 K in the display.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [February 25, 2023, 12:22am UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/33 "2023-02-25T00:22:18Z")

</div>

Julia has now over 900 packages registered, and package nr. 9000 is @ChrisRackauckas’

> **[GitHub - SciML/TruncatedStacktraces.jl: Simpler stacktraces for the Julia...](https://github.com/SciML/TruncatedStacktraces.jl)**
>
> Simpler stacktraces for the Julia Programming Language - GitHub - SciML/TruncatedStacktraces.jl: Simpler stacktraces for the Julia Programming Language

It (like other similar packages) seems intriguing.I THINK it does actually have nothing to do with SciML, just put under that umbrella, despite the ODEProblem example.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [April 26, 2023, 2:11pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/34 "2023-04-26T14:11:26Z")

</div>

I don’t know much Ruby, but I still posted such code in my comment there to get the current count (using wget), can anyone help make a PR there (and maybe more idiomatic Ruby code, without wget…):

[https://github.com/edebill/modulecounts/issues/58#issuecomment-1523455679](https://github.com/edebill/modulecounts/issues/58#issuecomment-1523455679)

We’re up to 48% the size of the CRAN (R) package system.

We’re likely the 14th largest package ecosystem of any language, and not like we can’t use packages from others, e.g. Python.

It would be great to get [modulecounts.com](http://modulecounts.com) working again, some time ago we were fastest growing package system (according to Reddit thread). Would be interesting to know if still true. By new packages (or even new versions).

Package 9300 is HorizonsEphemeris.jl and if I recall the exiting new PrecompileTools.jl at 9296, I had to scroll through a lot of pages to find the number (i.e. over JLL packages), it’s great so see how many new versions are registered, even in just one day.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [September 25, 2023, 12:07pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/35 "2023-09-25T12:07:12Z")

</div>

We actually have over 10,000 packages already, ~~but the next one up to be registered as nr. 10,000 is VibrationalAnalysis.jl~~ That package is now number 10001 since another slipped in.

[Nr. 9999 is PeriodicHiddenMarkovModels.jl]

EDIT: CIFTI.jl got unblocked and registered as package 10,000:

> This Julia package supplies a basic function `CIFTI.load` for reading files of the CIFTI-2 format [https://www.nitrc.org/projects/cifti](https://www.nitrc.org/projects/cifti) for fMRI data, along with some convenience functions for indexing into the data matrix.
> 
> The intended use case is for simple, fast reading of CIFTI data.

> CIFTI (Connectivity Informatics Technology Initiative) standardizes file formats for the storage of connectivity data. These formats are developed by the Human Connectome Project and other interested parties.

Which is a cool project, so far we only have the full connectome of three organisims, first the _C. elegans_ worm, and by now the (“brain”) nervous system of the fruit fly _D. melanogaster_, most complex so far, only mapped in 2023 (I assume both with help of the file format/spec):

> **[Drosophila connectome](https://en.wikipedia.org/wiki/Drosophila_connectome)**
>
> A Drosophila connectome is a list of neurons in the Drosophila melanogaster (fruit fly) nervous system, and the chemical synapses between them. The fly's nervous system consists of the brain plus the ventral nerve cord, and both are known to differ considerably between male and female. Dense connectomes have been completed for the female adult brain, the male nerve cord, and the female larval stage. The available connectomes show only chemical synapses - other forms of inter-neur Connectome res...

> Dense connectomes have been completed for the female adult brain,[3] the male nerve cord,[4] and the female larval stage.[5] The available connectomes show only chemical synapses - other forms of inter-neuron communication such as gap junctions or neuromodulators are not represented. Drosophila is the most complex creature with a connectome, which had only been previously obtained for three other simpler organisms, first _C. elegans_. […]
> 
> - The brain contains about 135,000 neurons,[6] small enough to be currently reconstructed.[7]
> - The fruit fly exhibits many complex behaviors. Hundreds of different behaviors (feeding, grooming, flying, mating, learning, and so on) have been qualitatively and quantitatively studied over the years.  
> […]
> 
> In 2023, using the data from 2017 (above), the full brain connectome (for a female) was published, containing roughly 5x10^7 chemical synapses between ~130,000 neurons.[3] A projectome, a map of projections between regions, can be derived from the connectome. In parallel, a consensus cell type atlas for the _Drosophila_ brain was published, produced based on this ‘FlyWire’ connectome and the prior ‘hemibrain’.[20] This resource includes 4,552 cell types: 3,094 as rigorous validations of those previously proposed in the hemibrain connectome; 1,458 new cell types

And more trivia on (fruit) flies, XY chromosomes always means “Normal Male” (unlike in birds), while XX can mean “Normal Female”, or intersex if there’s an extra autosome, and X (only) means a “Normal Male (sterile)” or if there’s an extra autosome a metamale (also called supermale), and XXX and XXXX can be superfemale (or normal).

> Unlike humans, the Y chromosome does not confer maleness; rather, it encodes genes necessary for making sperm. Sex is instead determined by the ratio of X chromosomes to autosomes. […] Furthermore, each cell “decides” whether to be male or female independently of the rest of the organism, resulting in the occasional occurrence of [gynandromorphs](https://en.wikipedia.org/wiki/Gynandromorph).

> Three major genes are involved in determination of _Drosophila sex_. These are _sex-lethal_, _sisterless_, and _deadpan_.

~~We are not strictly yet at “Over 10,000 _registered_ packages”, so if anyone wants to compete for package 10001 (still a cool number), please do:~~

Unless some other package beats it too it, by unblocking their registration.

Instead of simply waiting for the package to be merged, then announcing, I’m seeing if we can have a race for some _worthy_ package.

I’m not sure if some admin should hand-pick a nr. 10,000… any suggestion from the queue?

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [September 25, 2023, 1:05pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/36 "2023-09-25T13:05:40Z")

</div>

> [@Palli](#):
>
> any suggestion from the queue?

first come first serve, strictly ! 😉

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [September 25, 2023, 1:17pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/37 "2023-09-25T13:17:16Z")

</div>

You have to wait 3 days to qualify for registration, yes. Of the 69 packages waiting to be registered, at least 69-18= 51 packages are blocked after more than 3 days, and can be unblocked at any time in case people figure out how. So suggesting a package, and helping with that is possible, to have a change at 10001.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [December 28, 2023, 6:05pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/38 "2023-12-28T18:05:15Z")

</div>

We are up to 10391 registered packages, there of 9016 non-JLL/pure-Julia packages.\*

I believe this one is nr. 9000 of those:

> **[GitHub - tpapp/Binning2D.jl: A lightweight package for grouping 2D data into...](https://github.com/tpapp/Binning2D.jl)**
>
> A lightweight package for grouping 2D data into regular bins. - GitHub - tpapp/Binning2D.jl: A lightweight package for grouping 2D data into regular bins.

`*` All the JLL packages DO strictly speaking contain Julia code also, a module, or rather a `baremodule`, but all the Julia code is autogenerated as far as I know. See e.g. this one:

> **[GitHub - JuliaBinaryWrappers/LAPACK\_jll.jl](https://github.com/JuliaBinaryWrappers/LAPACK_jll.jl)**
>
> Contribute to JuliaBinaryWrappers/LAPACK\_jll.jl development by creating an account on GitHub.

I believe a wrapper for Fortran compiled code. Usually for C or C++ code. Sometimes Rust and others. [In theory a JLL could be wrapping Julia code, i.e. it CAN be compiled into a library, though I don’t know any to be wrapped as such as a JLL, since would be redundant, though could be helpful for use from other languages and then not in a JLL form.]

FYI: All the JLL packages are backed by Yggrasil, and there you’ll see non-auto-generated Julia code:

I see despite the .jl file, and Julia code, most of it is actually an embedded shell script, and the rest is trivial Julia code (for URL location): [Yggdrasil/H/HDF5/build\_tarballs.jl at master · JuliaPackaging/Yggdrasil · GitHub](https://github.com/JuliaPackaging/Yggdrasil/blob/master/H/HDF5/build_tarballs.jl#L36)

Do only of you register “GPL-v2-only” package, not just GPLv2 (“or later”). Because of GPLv3 packages such as:

> **[GitHub - JuliaCollections/LogRanges.jl](https://github.com/JuliaCollections/LogRanges.jl)**
>
> Contribute to JuliaCollections/LogRanges.jl development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [October 6, 2024, 11:12pm UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/39 "2024-10-06T23:12:52Z")

</div>

If all packages in the queue to be registered will be we are at 9995 (non-JLL) packages. More if some stuck will get unstuck.

It will be fun to see who hits nr. 10,000. Maybe your package if you register?!

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [November 1, 2024, 12:13am UTC](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702/40 "2024-11-01T00:13:22Z")

</div>

The 10,000th package (excluding JLLs) is SIRIUS.jl. But since it’s:

> a Julia package providing wrappers for the C-style API of the SIRIUS library, a domain specific library for electronic structure calculations.
> 
> The package relies on the SIRIUS binary distributed as SIRIUS\_jll.jl

I.e. basically for a JLL, then I also announce the next one registered:

> <https://github.com/JuliaRegistries/General/pull/117203>
>
> \- Registering package: AcceleratedKernels
> \- Repository: https://github.com/anicu…san/AcceleratedKernels.jl
> \- Created by: @anicusan
> \- Version: v0.1.0
> \- Commit: 1adfc5f9ee65cfeb5c9829ce1b45d729881e260d
> \- Reviewed by: @anicusan
> \- Reference: https://github.com/anicusan/AcceleratedKernels.jl/commit/1adfc5f9ee65cfeb5c9829ce1b45d729881e260d#commitcomment-147889933
> \- Description: Cross-architecture parallel algorithms for Julia's GPU backends, from a unified KernelAbstractions.jl codebase. Targets Intel oneAPI, AMD ROCm, Apple Metal, Nvidia CUDA.

We are up to 10,057 non-JLL packages, plus 1492 JLL packages for a total of 11549 registered packages. To be fair, some (most?) JLL packages have corresponding packages like the one above. And many non-JLL packages depend on some (one or more) JLLs directly or indirectly, but that’s also perfectly fine. I just wanted to exclude the jll packages to sort of see how many pure Julia packages there might me.

[Previous page](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702.md?page=1)

[Next page](https://discourse.julialang.org/t/well-over-10-000-non-jll-julia-packages-with-jlls-up-to-11-846-julia-registered-packages-congratulation-julia-community/36702.md?page=3)
