Julia libraries

ML

  • ​Flux - Elegant approach to machine learning. It's a 100% pure-Julia stack, and provides lightweight abstractions on top of Julia's native GPU and AD support. (Flux Model Zoo) (Deep Learning with Flux.jl) (Web)

  • ​MLJ - Julia machine learning framework. (Tutorial)

  • ​MLJTime - MLJ compatible Julia toolbox for learning with time series.

  • ​Knet - Deep learning framework implemented in Julia by Deniz Yuret and collaborators.

  • ​TensorCast.jl - Lets you work with many-dimensional arrays in index notation, by defining a few macros.

  • ​SDDP.jl - Stochastic Dual Dynamic Programming in Julia.

  • ​ONNX - Read ONNX graphs in Julia.

  • ​ReversePropagation.jl - Julia package for reverse propagation along a syntax tree, using source-to-source transformation via ModelingToolkit.jl.

  • ​Metalhead - Computer vision models for Flux.

  • ​ChainRules - Forward and reverse mode automatic differentiation primitives for Julia Base + StdLibs.

  • ​MiniFastai - Mini-version of fast.ai in Julia.

  • ​ReservoirComputing.jl - Reservoir computing utilities for scientific machine learning (SciML).

  • ​GeometricFlux.jl - Geometric deep learning library for Flux.

  • ​FluxTraining.jl - Flexible neural net training library inspired by fast.ai. (Docs)

  • ​GalacticOptim.jl - Local, global, and beyond optimization for scientific machine learning (SciML).

  • ​DiffEqGPU - GPU-acceleration routines for DifferentialEquations.jl and the broader SciML scientific machine learning ecosystem.

  • ​Avalon - Deep learning library in Julia with focus on high performance and interoperability with existing DL frameworks.

  • ​KernelDensity.jl - Kernel density estimators for Julia.

  • ​Reinforce - Abstractions, algorithms, and utilities for reinforcement learning in Julia.

  • ​Augmentor - Fast image augmentation library in Julia for machine learning.

  • ​DiffEqSensitivity.jl - Sensitivity analysis for scientific machine learning (SciML).

  • ​TensorCore.jl - Lightweight package for sharing tensor-algebra definitions.

Math

  • ​DifferentialEquations - Julia suite for high-performance solvers of differential equations.

  • ​IterativeSolvers - Iterative algorithms for solving linear systems, eigensystems, and singular value problems.

  • ​JuMP - Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear).

  • ​Multivariate Statistics - Julia package for multivariate statistics and data analysis (e.g. dimension reduction).

  • ​RandomizedLinAlg.jl - Randomized algorithms for numerical linear algebra in Julia.

  • ​Grassmann.jl - ⟨Leibniz-Grassmann-Clifford⟩ differential geometric algebra / multivector simplicial complex.

  • ​PencilFFTs.jl - Fast Fourier transforms of MPI-distributed Julia arrays.

  • ​SurrealNumbers - Implementation of Conway's Surreal Numbers.

  • ​Manopt.jl - Optimization on Manifolds in Julia.

  • ​ApproxFun.jl - Julia package for function approximation.

  • ​ReverseDiff - Reverse Mode Automatic Differentiation for Julia.

  • ​StatsFuns.jl - Mathematical functions related to statistics.

  • ​Catlab.jl - Framework for applied category theory in the Julia language.

  • ​Symata.jl - Symbolic mathematics language.

  • ​BlackBoxOptim - Black-box optimization for Julia.

  • ​MappedArrays - Lazy in-place transformations of arrays.

  • ​Pingouin.jl - Reimplementation of Raphaelvallat's Pingouin in Julia.

  • ​StatsModels - Specifying, fitting, and evaluating statistical models in Julia.

  • ​MathOptInterface - Abstraction layer for mathematical optimization solvers.

  • ​TemporalGPs - Fast inference for Gaussian processes in problems involving time.

  • ​FiniteDifferences.jl - Estimates derivatives with finite differences.

  • ​IncrementalInference.jl - Incremental non-parametric (and parametric) solution to factor graphs.

  • ​FiniteDiff - Fast non-allocating calculations of gradients, Jacobians, and Hessians with sparsity support.

  • ​LazySets.jl - Julia package for calculus with convex sets.

  • ​Tullio.jl - Flexible einsum macro. Understands many array operations written in index notation.

  • ​Stheno - Probabilistic Programming with Gaussian processes in Julia.

  • ​MultiFloats.jl - Fast extended-precision floating-point arithmetic for Julia.

  • ​RecursiveFactorization - Package that collects various recursive matrix factorization algorithms.

  • ​Nemo - Computer algebra package for the Julia programming language. It aims to cover commutative algebra, number theory and group theory.

  • ​AbstractAlgebra - Pure Julia package for computational abstract algebra.

  • ​Hecke - Computational algebraic number theory.

  • ​ChainRulesCore - Provides a light-weight dependency for defining sensitivities for functions in your packages.

  • ​Calculus.jl - Calculus functions in Julia.

NLP

Biology

  • ​GeneticVariation - Data structures and algorithms for working with genetic variation.

  • ​BioStructures.jl - Julia package to read, write and manipulate macromolecular structures (particularly proteins).

  • ​MolecularGraph.jl - Graph-based molecule modeling toolkit for cheminformatics.

  • ​FASTX - Parse and process FASTA and FASTQ formatted files of biological sequences.

  • ​Molly.jl - Molecular simulation in Julia.

  • ​DFTK - Density-functional toolkit.

Computer Vision

  • ​Flux3D.jl - 3D computer vision library in Julia.

Web

Test

  • ​XUnit.jl - Unit-testing framework for Julia.

Error

  • ​ErrorTypes - Rust-like error types in Julia.

Other

  • ​TimeSeries - Aims to provide a lightweight framework for working with time series data in Julia.

  • ​Plots - Powerful convenience for Julia visualizations and data analysis.

  • ​Makie - High level plotting on the GPU.

  • ​FileIO - Main Package for IO, loading all different kind of files.

  • ​GPUArrays - Array operations defined for all kind of GPU backends.

  • ​PackageCompiler - Remove just-in-time compilation overhead from your package and compile it into a system image.

  • ​CUDAdrv - Julia wrapper for the CUDA driver API.

  • ​Devectorize - Provides macros and functions to de-vectorize a vector expression.

  • ​CUDAnative.jl - Julia support for native CUDA programming.

  • ​Julia debugger​

  • ​Automa.jl - Julia code generator for regular expressions.

  • ​Gadfly - Plotting and data visualization system written in Julia.

  • ​FastTransforms.jl - Julia package for fast orthogonal polynomial transforms.

  • ​ModelingToolkit.jl - Toolkit for modeling and creating DSLs for Scientific Computing in Julia.

  • ​Zygote - Intimate Affection Auditor.

  • ​ForwardDiff.jl - Forward Mode Automatic Differentiation for Julia.

  • ​Omega.jl - Causal, Higher-Order, Probabilistic Programming.

  • ​AutoGrad - Automatic differentiation package for Julia.

  • ​GLM - Generalized linear models in Julia.

  • ​Distributions.jl - Julia package for probability distributions and associated functions.

  • ​Turing.jl - Turing language for probabilistic machine learning and Bayesian statistics. (HN)

  • ​Pretty Tables - Print data in matrices in a human-readable format.

  • ​PyCall.jl - Package to call Python functions from the Julia language.

  • ​Optim.jl - Univariate and multivariate optimization in Julia.

  • ​StaticArrays - Statically sized arrays for Julia.

  • ​Threads - Parallelized Base functions.

  • ​DataStructures.jl - Implements a variety of data structures.

  • ​Literate - Simple package for literate programming in Julia.

  • ​AbstractTrees - Abstract julia interfaces for working with trees.

  • ​Lazy.jl - Provides Julia with the cornerstones of functional programming - lazily-evaluated lists and a large library of functions for working with them.

  • ​BenchmarkTools.jl - Benchmarking framework for the Julia language.

  • ​Dash - Create beautiful, analytic applications in Julia.

  • ​MLStyle.jl - Julia functional programming infrastructures and metaprogramming facilities.

  • ​QuadGK.jl - Adaptive 1d numerical Gauss–Kronrod integration in Julia.

  • ​ClearStacktrace - Visually clarified stack traces for Julia.

  • ​DiffEqFlux.jl - Universal neural differential equations with O(1) backprop, GPUs, and stiff+non-stiff DE solvers.

  • ​Weave - Scientific report generator/literate programming tool for Julia.

  • ​Latexify.jl - Convert julia objects to LaTeX equations, arrays or other environments.

  • ​FFTW.jl - Julia bindings to the FFTW library for fast Fourier transforms.

  • ​InteractiveViz.jl - Interactive visualization tools for Julia.

  • ​UnicodePlots - Advanced Unicode plotting library designed for use in Julia's REPL.

  • ​Revise.jl - Automatically update function definitions in a running Julia session.

  • ​JuliaWebAPI.jl - Julia package for deploying APIs.

  • ​HTTP - HTTP client and server functionality for Julia.

  • ​OptimKit.jl - Blissfully ignorant Julia package for gradient optimization.

  • ​TrajectoryOptimization.jl - Fast trajectory optimization library written in Julia.

  • ​UnderscoreOh.jl - Call graphs as recompilation-free capture-by-value closures.

  • ​Downloads - Provides a single function, download, which provides cross-platform, multi-protocol, in-process download functionality implemented with libcurl.

  • ​Colors - Color manipulation utilities for Julia.

  • ​NiLang.jl - Reversible domain-specific language (DSL) that allow a program to go back to the past. (HN)

  • ​CUDAFolds - Data-parallelism on CUDA using Transducers.jl and for loops (FLoops.jl).

  • ​TheFix.jl - Fix for the most common errors made in the REPL.

  • ​FancyDiagnostics - Enhance your Julia error message experience.

  • ​RandomNumbers - Random Number Generators.

  • ​StaticModules - Statically sized and typed namespace you can use for enclosing julia code and variables without runtime overhead and useable in either the global or local scopes.

  • ​Mustache - Port of mustache.js to julia.

  • ​Publish.jl - Universal document authoring package for Julia.

  • ​SIMD - Explicit SIMD vector operations for Julia.

  • ​ArrayInterface - Designs for new Base array interface primitives.

  • ​LazyArrays - Lazy arrays and linear algebra in Julia.

  • ​Oceananigans.jl - Fast and friendly fluid dynamics on CPUs and GPUs.

  • ​LinearFractional - Linear fractional programming with Julia and JuMP.

  • ​MeasureTheory - Package for building and reasoning about measures.

  • ​Restructured BNF - Aims at the generating parsers without requiring redundant coding from programmers.

  • ​GeneralizedGenerated - Enables the generalized generated functions. Specifically, it supports closure constructions in generated functions.

  • ​DiffEqBase.jl - Lightweight Base library for shared types and functionality for defining differential equation and scientific machine learning (SciML) problems.

  • ​LRUCache.jl - Provides a thread-safe implementation of a Least Recently Used (LRU) Cache for Julia.

  • ​Cxx.jl - Julia C++ Interface.

  • ​Cascadia - CSS Selector library in Julia.

  • ​JSON3 - JSON package for Julia. Focused on speed and slick struct mapping.

  • ​JSON.jl - JSON parsing and printing.

  • ​TableIO - Glue package for reading and writing tabular data.

  • ​JET.jl - Experimental type checker for Julia, no need for additional type annotations.

  • ​LoopVectorization - Macro(s) for vectorizing loops.

  • ​LinearOperators.jl - Linear Operators for Julia.

  • ​Images.jl - Image library for Julia.

  • ​Match.jl - Advanced Pattern Matching for Julia.

  • ​PlutoUI.jl - Tiny package to make HTML input tag a bit more Julian.

  • ​Fermionic - Toolkit for fermonic quantum computation in Julia.

  • ​FileTrees.jl - Parallel file processing made easy.

  • ​DataFramesMeta.jl - Metaprogramming tools for DataFrames.jl objects.

  • ​Documenter - Documentation generator for Julia.

  • ​Memoization.jl - Easily and efficiently memoize any function in Julia.

  • ​Memoize.jl - Easy memoization for Julia.

  • ​SymbolicUtils.jl - Expression rewriting and simplification.

  • ​Gridap - Grid-based approximation of partial differential equations in Julia.

  • ​BlockArrays.jl - BlockArrays for Julia.

  • ​InteractiveAudio - Julia package to generate and play audio while dynamically changing the underlying code in real time.

  • ​GFlops.jl - Estimate the absolute performance of a piece of Julia code.

  • ​VectorizationBase - Library providing basic SIMD support in Julia.

  • ​InplaceOps.jl - Convenient macros for in-place matrix operations in Julia.

  • ​PGFPlotsX - Julia package to generate publication quality figures using the LaTeX library PGFPlots.

  • ​AcceleratedArrays.jl - Arrays with acceleration indices.

  • ​FLoops - Fast sequential, threaded, and distributed for-loops for Juliaβ€”fold for humans.

  • ​ParallelStencil - Package for writing high-level code for parallel high-performance stencil computations that can be deployed on both GPUs and CPUs.

  • ​Circuitscape - Algorithms from circuit theory to predict connectivity in heterogeneous landscapes. (Web)

  • ​CategoricalArrays.jl - Arrays for working with categorical data (both nominal and ordinal).

  • ​Infiltrator.jl - Provides a macro called @infiltrate, which sets a "breakpoint" in a local context.

  • ​Luxor - Julia package for drawing simple static vector graphics.

  • ​SnoopCompile - Making packages work faster with more extensive precompilation.

  • ​StaticCompiler - Compiles Julia code to a standalone library.

  • ​Stipple - Reactive UI library for interactive data applications with pure Julia.

  • ​PkgEval.jl - Evaluate Julia packages.

  • ​DataDeps - Reproducible data setup for reproducible science.

  • ​TreeView - Draw Julia syntax trees as a graph.

  • ​ControlSystems.jl - Control Systems Toolbox for Julia.

  • ​MatchCore - Minimal implementation of optimized pattern matching.

  • ​ManualDispatch - Avoid method dispatch at runtime.

  • ​ExprTools - Light-weight expression manipulation tools.

  • ​ConfParser - Julia package for parsing configuration files.

  • ​TimerOutputs - Formatted output of timed sections in Julia.

Links