# Comparison tables for various Julia packages

**URL:** https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786
**Category:** Community
**Tags:** package, comparison
**Created:** [May 7, 2025, 10:51am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786 "2025-05-07T10:51:45Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 7, 2025, 10:51am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/1 "2025-05-07T10:51:45Z")

</div>

# Context

Julia enthusiasts are always pitching the language to colleagues, and despite various technical arguments, we often fail to show how the language can concretely impact scientist’s productivity.

Given this context, I am starting this thread to collect concrete evidence that the language enables state-of-the-art package ecosystems.

# Goal

The ultimate goal is to collect comparison tables between Julia package ecosystems and alternatives written in other languages. These tables can be worth 100 pitch talks if potential users have specific software demands.

# Instructions

- Please add a single table per comment
- Paste the table/figure directly for posterity
- Add a source link where the (updated) table is available

# Aftermath

We plan to add a link to this thread in the Julia manifesto if the number of tables is representative of the Julia experience across various scientific fields:

> <https://github.com/Datseris/whyjulia-manifesto/issues/10>
>
> What do you think of adding a section in the manifesto for comparison tables?
> 
> E…xamples:
> 
> \- https://juliaearth.github.io/GeoStatsDocs/stable/#Overview
> \- https://docs.rxinfer.com/stable/manuals/comparison

I will start adding tables I am aware of in the comments below.

Thanks in advance for the help.

cc: @Datseris

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 7, 2025, 10:52am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/2 "2025-05-07T10:52:43Z")

</div>

# GeoStats.jl

 ![geostats-comparison](https://global.discourse-cdn.com/julialang/original/3X/7/c/7c23e170799ffab0c24b10b7acd1efd204f08584.png)

Source: [Home · GeoStats.jl](https://juliaearth.github.io/GeoStatsDocs/stable/#Overview)

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 7, 2025, 10:53am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/3 "2025-05-07T10:53:42Z")

</div>

# RxInfer.jl

 ![image](https://global.discourse-cdn.com/julialang/original/3X/5/d/5d81b6d8db720abdac83b73c3761911c13856205.png)

Source: [RxInfer.jl vs. Others · RxInfer.jl](https://docs.rxinfer.com/stable/manuals/comparison)

---

<div class="post-metadata">

### Author: ![DanielVandH](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/danielvandh/32/31134_2.png) [@DanielVandH](https://discourse.julialang.org/u/DanielVandH)
#### Post date: [May 7, 2025, 11:36am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/4 "2025-05-07T11:36:18Z")

</div>

I made something similar for DelaunayTriangulation.jl here [GitHub - JuliaGeometry/DelaunayTriangulation.jl: DelaunayTriangulation.jl: A Julia package for Delaunay triangulations and Voronoi tessellations in the plane](https://github.com/JuliaGeometry/DelaunayTriangulation.jl?tab=readme-ov-file#similar-packages), namely (need to fix the X’s for the GPL licenses though, thanks @tecosaur)

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

---

<div class="post-metadata">

### Author: ![Salmon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/salmon/32/22968_2.png) [@Salmon](https://discourse.julialang.org/u/Salmon)
#### Post date: [May 8, 2025, 12:14pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/5 "2025-05-08T12:14:18Z")

</div>

# [DifferentialEquations.jl](https://www.stochasticlifestyle.com/comparison-differential-equation-solver-suites-matlab-r-julia-python-c-fortran/)

 ![ScreenshotODE](https://global.discourse-cdn.com/julialang/original/3X/9/c/9cf8f959399a70561316d0d9d1ae1299de77ab9c.png)  
(note: its from chris Rackauckas’ blogpost from 2017)

---

<div class="post-metadata">

### Author: ![adienes](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adienes/32/37459_2.png) [@adienes](https://discourse.julialang.org/u/adienes)
#### Post date: [May 8, 2025, 12:22pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/6 "2025-05-08T12:22:36Z")

</div>

edit: to keep this thread as just a collection of examples, let’s move any debate about the merits of comparison tables to a separate one (my bad).

---

<div class="post-metadata">

### Author: ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)
#### Post date: [May 8, 2025, 12:46pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/7 "2025-05-08T12:46:34Z")

</div>

I don’t think it’s possible to be unbiased. In fact, it’s a very good reason to implement new software because previous approaches didn’t provide the entirety of what the developers believed were good features. It’s possible for other people to look at the same things as unnecessary or even bad features. I think the way to go is to make lists that are in touch with the field as much as possible but acknowledge it’s ultimately the developers’ opinion on a good toolset. That shouldn’t be too difficult, most READMEs state the intent of the library, so the table can just reflect that. I’d argue that the Julia package’s checklist should always go first so it’s a clearer implication that the list is the developers’ opinion, and it’s easier to see the to-do list of the package when we don’t care about other libraries.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 8, 2025, 12:47pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/8 "2025-05-08T12:47:28Z")

</div>

If you are considering replying to the “universal human bias issue” raised by @adienes above, please try to not derail the goal of this thread, which is to **collect tables**. People can judge biases by themselves.

I hope this won’t become yet another debate on Discourse with endless back and forth of what is right or wrong…

---

<div class="post-metadata">

### Author: ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)
#### Post date: [May 8, 2025, 3:21pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/9 "2025-05-08T15:21:09Z")

</div>

I do see those a bit critical, because usually the author of a table is the one who wants to present their own package best, but that is for the detailed thread probably 😉

We gave that a try in comparing manifold features and available manifolds in [our paper on Manifolds.jl](https://dl.acm.org/doi/10.1145/3618296), but since external links were said to be unwished for, here are screenshots, but you can also get the [TeX code from arxiv](https://arxiv.org/abs/2106.08777)

## Manifold features

Note that the last version of the preprint is one-element-off; Riemannian Hessians were only available when the Galleys arrived and we did not update the arXiv

 ![Screenshot 2025-05-08 at 17.18.12](https://global.discourse-cdn.com/julialang/original/3X/a/c/ac4e2581d776c361b38d0c1a27c63b2ed3b02038.jpeg)

---

<div class="post-metadata">

### Author: ![kellertuer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kellertuer/32/220707_2.png) [@kellertuer](https://discourse.julialang.org/u/kellertuer)
#### Post date: [May 8, 2025, 3:23pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/10 "2025-05-08T15:23:11Z")

</div>

## Manifolds

This is a bit longish, since we tried to be complete and collect _all_ manifolds in all packages we could find

 ![Screenshot 2025-05-08 at 17.14.13](https://global.discourse-cdn.com/julialang/original/3X/d/d/dd74744ad4fd33d3af6e1dae5399b3bbe95c6c88.jpeg)

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [May 8, 2025, 6:18pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/11 "2025-05-08T18:18:26Z")

</div>

> [@kellertuer](#):
>
> but since external links were said to be unwished for

I am confused why the OP asked for this. I would say having the source of the tables is a pre-requisite for posting these anywhere. Please do provide the source for the tables for future reference and for robustness.

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [May 8, 2025, 6:21pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/12 "2025-05-08T18:21:19Z")

</div>

One table comes from ComplexityMeasures.jl, from our paper (which just got accepted in PLOS ONE, now in the proofreading stage). The table is on arxiv ([[2406.05011] ComplexityMeasures.jl: scalable software to unify and accelerate entropy and complexity timeseries analysis](https://arxiv.org/abs/2406.05011) ) and the copy/paste is:

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

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 8, 2025, 6:25pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/13 "2025-05-08T18:25:59Z")

</div>

I didn’t ask for hiding the source. My instructions aren’t clear enough maybe ?

---

<div class="post-metadata">

### Author: ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)
#### Post date: [May 8, 2025, 6:28pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/14 "2025-05-08T18:28:24Z")

</div>

Another table from our work on Agents.jl, which was published in SIMULATION two years ago. The problem is, this table is now definitely outdated, Agents.jl has even more features that you won’t find anywhere else. On the other hand, the competing software have improved their performance. We keep track of the latest performance trends in [GitHub - JuliaDynamics/ABMFrameworksComparison: Benchmarks and comparisons of leading ABM frameworks](https://github.com/JuliaDynamics/ABMFrameworksComparison) . The paper the table comes from is in [https://journals.sagepub.com/doi/10.1177/00375497211068820](https://journals.sagepub.com/doi/10.1177/00375497211068820)

And the table paste is:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/4/d/4d62721e3067d747ed6324134b374e3f5e72c02a.png)

 ![image](https://global.discourse-cdn.com/julialang/original/3X/5/7/57128d429d5ff99c6ddfaeffb8835de117dcc81f.png)

But yeah, I would take this with a grain of salt because it is outdated. I think Mesa is now in v2. Not sure how much genuinely new stuff this brought in to be honest though.

EDIT: Forgot the second part of the table that showed the performance comparison:

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

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 8, 2025, 6:37pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/15 "2025-05-08T18:37:56Z")

</div>

> [@juliohm](#):
>
> - Please add a single table per comment
> - Avoid external links if possible (screenshot would be ok?)
> - Add a source link where the (updated) table can be found

Replaced the 3 instructions above by the following for improved clarity:

- Please add a single table per comment
- Paste the table/figure directly for posterity
- Add a source link where the (updated) table is available

---

<div class="post-metadata">

### Author: ![MilesCranmer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/milescranmer/32/21070_2.png) [@MilesCranmer](https://discourse.julialang.org/u/MilesCranmer)
#### Post date: [May 8, 2025, 9:37pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/16 "2025-05-08T21:37:10Z")

</div>

Here’s the symbolic regression feature table for SymbolicRegression.jl (listed under “PySR” which is the more well-known Python frontend). This is from our [paper](https://arxiv.org/abs/2305.01582).

 ![image](https://global.discourse-cdn.com/julialang/original/3X/2/9/290187e53f18dab1fd88d4914c56b39686ba0d2b.png)

Heads up: The paper is from May 2023, so the landscape (and our package!) has evolved. For instance, PySR/[SymbolicRegression.jl](https://github.com/MilesCranmer/SymbolicRegression.jl) now can handle high-dimensional inputs and plug into differential equations – features not fully reflected in this older snapshot. In retrospect I might also add a couple other rows which PySR/[SymbolicRegression.jl](https://github.com/MilesCranmer/SymbolicRegression.jl) does not yet have, like arbitrary arity operators, or being able to evolve a Turing complete DSL.

Regarding the table itself: you might notice PySR/[SymbolicRegression.jl](https://github.com/MilesCranmer/SymbolicRegression.jl) has a ✅ in nearly every row. While skepticism is understandable for a scenario like this, here, this broad feature coverage was the main goal of creating the package, so it is expected. Many of the other excellent tools listed are geared more towards exploring specific research ideas rather than being comprehensive software products. i.e., this isn’t a statement on their inherent value, but rather reflects where development efforts were focused.

(And of course, we found Julia’s ecosystem made achieving this breadth of features significantly more manageable than, say, if we had started with C++! So it still can safely be used as a statement about ease of Julia development)

---

<div class="post-metadata">

### Author: ![tecosaur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tecosaur/32/23206_2.png) [@tecosaur](https://discourse.julialang.org/u/tecosaur)
#### Post date: [May 10, 2025, 2:25pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/17 "2025-05-10T14:25:01Z")

</div>

Inspired by this thread, I’ve put together a comparison table for the readme/docs of my newest package [Trash.jl](https://github.com/tecosaur/Trash.jl). I had some fun picking emojis that seem self-explanatory to me.

> **[GitHub - tecosaur/Trash.jl: Mirror of https://code.tecosaur.net/tec/Trash.jl](https://github.com/tecosaur/Trash.jl)**
>
> Mirror of https://code.tecosaur.net/tec/Trash.jl

| Library | Language | Library/CLI | Platforms | Trash | Untrash | List | Orphans | Purge | Empty |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| _Trash.jl_ | Julia | 📚 | 🐧 🍏 🪟 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [trash-rs](https://github.com/Byron/trash-rs) | Rust | 📚 + [🐚](https://github.com/orf/trash) | 🐧 🍏 🪟 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| [send2trash](https://github.com/arsenetar/send2trash) | Python | 📚 | 🐧 🍏 🪟 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| [trash](https://github.com/sindresorhus/trash) | JavaScript | 📚 + [🐚](https://github.com/sindresorhus/trash-cli) | 🐧 🍏 🪟 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| [gomi](https://github.com/babarot/gomi) | Go | 🐚 | 🐧 🍏 🪟 | ✅ | 🐧 | 🐧 | 🐧 | ❌ | ❌ |
| [Trashman](https://github.com/jorystewart/trashman) | C# | 🐚 | 🐧 〰 🪟 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| [trash-cli](https://github.com/andreafrancia/trash-cli) | Python | 🐚 | 🐧 〰 〰 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| [trash-d](https://github.com/rushsteve1/trash-d) | D | 🐚 | 🐧 〰 〰 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| [GIO](https://docs.gtk.org/gio/method.File.trash.html) | C | 📚 | 🐧 〰 〰 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| [KIO](https://api.kde.org/frameworks/kio/html/classKIO_1_1DeleteOrTrashJob.html) | C++ | 📚 | 🐧 〰 〰 | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
| [DS\_Store parser](https://github.com/gehaxelt/Python-dsstore) | Python | 📚 | 〰 🍏 〰 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| [Foundation](https://developer.apple.com/documentation/foundation/filemanager/trashitem(at:resultingitemurl:)?language=objc) | ObjC/Swift | 📚 | 〰 🍏 〰 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| [rifiuti2](https://github.com/abelcheung/rifiuti2) | C | 🐚 | 〰 〰 🪟 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| [winshell](https://github.com/tjguk/winshell) | Python | 📚 | 〰 〰 🪟 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
| [win32](https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shfileoperationw) | C | 📚 | 〰 〰 🪟 | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [May 10, 2025, 3:50pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/18 "2025-05-10T15:50:03Z")

</div>

This thread is also giving me the chance to star all these amazing projects on GitHub ⭐

---

<div class="post-metadata">

### Author: ![Tarny\_GG\_Channie](https://avatars.discourse-cdn.com/v4/letter/t/3bc359/32.png) [@Tarny\_GG\_Channie](https://discourse.julialang.org/u/Tarny_GG_Channie)
#### Post date: [May 21, 2025, 1:58pm UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/19 "2025-05-21T13:58:32Z")

</div>

> [@MilesCranmer](#):
>
> In retrospect I might also add a couple other rows which PySR/[SymbolicRegression.jl](https://github.com/MilesCranmer/SymbolicRegression.jl) does not yet have, like arbitrary arity operators, or being able to evolve a Turing complete DSL.

The arbitrary arity operator is in the expressiveness score. As for the Turing-complete DSL, I’m not sure.

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [June 3, 2025, 12:06am UTC](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786/20 "2025-06-03T00:06:11Z")

</div>

Gentle bump.

[Next page](https://discourse.julialang.org/t/comparison-tables-for-various-julia-packages/128786.md?page=2)
