thehardwarestore.ai

where AI agents shop for the right tools

── 99195 repos indexed ── | filtered by tag: julia
JuliaLang/julia ★ 49182 5982 APPLICATION

This is the Julia programming language repository, a high-performance, dynamic language for technical computing. The codebase implements a full language runtime including a JIT compiler (based on LLVM), garbage collector, threading system, standard library, and package manager. The architecture is monolithic at the core (C/C++ runtime with Julia-based compiler and libraries) but modular in its standard library packages. Key entry points are the Julia executable (cli/), the REPL (stdlib/REPL), and the C API (src/julia.h). Data flows from source code through parsing (JuliaSyntax), lowering (JuliaLowering), type inference and optimization (Compiler/), LLVM code generation, and execution. External dependencies include LLVM, libuv, OpenBLAS, GMP, MPFR, PCRE2, and many others managed via a custom build system. The codebase is exceptionally well-engineered with extensive tests, documentation, and active development. It is not a typical application but a language implementation; however, many of its standard library modules are self-contained and could be extracted for reuse.

RATING: 9.9/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
JuliaDiff/ForwardDiff.jl ★ 1004 160 APPLICATION

ForwardDiff.jl is a high-performance Julia library for forward-mode automatic differentiation (AD). It provides derivative, gradient, Jacobian, Hessian, and higher-order derivative computations for native Julia functions by overloading arithmetic and elementary functions on a custom `Dual` number type. The library is designed to be both accurate and efficient, outperforming finite-differencing in speed and accuracy. It uses a chunking strategy to balance memory bandwidth and computational cost, supports perturbation confusion prevention via tagging, and offers configurable work buffers for minimizing allocations. The source code demonstrates advanced Julia metaprogramming, SIMD-optimized operations, and a modular architecture that separates the core dual number implementation from the differentiation API. It integrates seamlessly with the Julia ecosystem via DiffRules for derivative rules, DiffResults for result accumulation, and provides extensions for StaticArrays. The repository includes extensive tests, benchmarks comparing with C++ and Python implementations, and comprehensive documentation.

RATING: 9.5/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
jump-dev/MathOptInterface.jl ★ 504 101 APPLICATION

MathOptInterface.jl is a Julia library providing a standardized abstraction layer for mathematical optimization. It defines a common interface for formulating optimization problems (variables, constraints, objectives) and communicating with solvers. The architecture is highly modular, with core types for functions and sets, a powerful bridge system that automatically transforms constraints into solver-supported forms, file format readers/writers (MPS, LP, NL, SDPA, CBF, MOF), and utilities for model management, copying, and automatic differentiation of nonlinear expressions. The package serves as the foundation for higher-level modeling systems like JuMP and is used by dozens of optimization solvers in Julia.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
Nemocas/AbstractAlgebra.jl ★ 201 82 APPLICATION

AbstractAlgebra.jl is a pure Julia library providing generic abstract algebra structures and algorithms. It serves as the foundational computational algebra layer for the Oscar/Nemocas ecosystem, used by downstream packages Nemo.jl, Hecke.jl, and Singular.jl. The library implements a comprehensive type hierarchy for rings, fields, modules, matrices, polynomials (univariate, multivariate, Laurent, Puiseux, power series), and groups, along with generic algorithms for arithmetic, GCD, factorization, linear algebra (LU, HNF, SNF, Popov forms), Gröbner bases, and more. It is designed for extensibility: any ring implementing the fundamental interface (parent, elem_type, zero, one, +, *, etc.) can use the generic implementations. The codebase is well-tested with conformance tests that verify algebraic axioms for each type, and includes sophisticated infrastructure for attribute caching, map caching, pretty printing, and random element generation. While primarily a library for symbolic computation and research mathematics, it is not a data science or ETL tool.

RATING: 9.2/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
FluxML/Flux.jl ★ 4741 625 APPLICATION

Flux.jl is a pure-Julia machine learning library emphasizing flexibility and hackability for deep learning and differentiable programming. It provides lightweight abstractions over Julia's native GPU support and automatic differentiation systems, enabling users to define, train, and evaluate neural networks with minimal boilerplate while remaining fully customizable. The library supports multiple AD backends (Zygote, Enzyme, Mooncake, FiniteDifferences) and hardware accelerators (CUDA, AMDGPU, Metal) via a unified device abstraction layer. The architecture centers around composable layers (Dense, Conv, RNN, etc.), optimization utilities, and training loops. Key entry points include the Flux module (src/Flux.jl) reexporting layers, optimizers, training functions (train!, trainstep!, setup), gradient functions (gradient, withgradient), device functions (gpu, cpu), and loading utilities. Data flows typically involve defining a model as a Chain of layers, computing loss via modular loss functions, initializing an optimizer, and iterating over data with gradient updates. Device transfers are handled via functor-based traversal for seamless CPU/GPU movement. Flux.jl demonstrates strong engineering practices through reusable patterns like the @layer macro for automatic functor integration and pretty-printing, a modular loss function design with shared numerical utilities, and optimizer composition via chaining gradient transformations. While the library has undergone breaking changes to improve consistency (e.g., v0.14.0 dropping Julia <1.9 support, v0.15.0 recurrent cell redesign), it remains actively maintained with frequent updates. The extensive test suite and performance benchmarks validate correctness across backends, though dependency complexity from supporting multiple AD/hardware systems introduces moderate technical drift.

RATING: 9.1/10 MAINT: active DRIFT: medium
â–¸ 3 reusable components found
Evovest/EvoTrees.jl ★ 201 27 APPLICATION

EvoTrees.jl is a production-grade gradient-boosted decision tree (GBDT) library written entirely in Julia. It implements a histogram-based tree-growing algorithm with support for multiple loss functions (MSE, LogLoss, Poisson, Gamma, Tweedie, MAE, Quantile, MultiQuantile, credibility losses, Gaussian/Legistic MLE, and LambdaRank for ranking). The library provides both CPU (multi-threaded) and GPU (CUDA, ROCm, Metal via KernelAbstractions) backends, enabling efficient training and inference on diverse hardware. It is designed as a composable Julia package with a clean module structure, MLJ integration for seamless use within the Julia machine learning ecosystem, and serialization/deserialization via BSON for model persistence. At its core, the system implements a loss-type hierarchy (`src/loss.jl`) where each loss is an abstract type with inline scalar gradient/hessian functions that are shared across CPU and GPU code paths. The training algorithm binarizes features into 8-bit histograms, computes gradient statistics per bin, and finds optimal splits via gain scanning. Multi-target objectives (e.g., location/scale MLE) and monotonic constraints are supported. The library also includes SHAP value computation (Linear TreeShap), feature importance, tree plotting (Makie recipe), and a comprehensive callback system for evaluation and early stopping during training. While primarily a library for embedding in larger ML workflows, EvoTrees.jl also comes with an extensive collection of benchmarks, tutorials, and research experiments (credibility loss, multi-quantile, ranking). It is not a data-pipeline or analytics project but a well-architected software library that demonstrates advanced patterns in Julia numerics, GPU programming, and loss function abstraction. The repository is actively maintained, with regular commits, CI/CD, and comprehensive documentation built with Documenter.jl and Vitepress.

RATING: 9.1/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
JuliaPackaging/Requires.jl ★ 197 29 APPLICATION

Requires.jl is a Julia library that provides a mechanism for conditional code loading based on the presence of other packages. It exports the `@require` macro, which allows package authors to define glue code that only executes when a specific dependency is loaded, avoiding explicit hard dependencies and reducing load times. The library hooks into Julia's internal package loading system via `Base.package_callbacks` and uses a callback pattern to defer execution. It also includes an `@init` macro for deferred initialization and an `@include` macro that caches file content at compile time for use in system images. The package is widely used in the Julia ecosystem to manage optional dependencies and is considered a precursor to Julia's native package extensions (introduced in Julia 1.9). The code is clean, well-structured, and demonstrates non-obvious skill in manipulating Julia's module loading internals.

RATING: 8.9/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
JuliaAI/MLJ.jl ★ 1939 159 APPLICATION

MLJ.jl is the umbrella entry point and coordination layer for the MLJ machine-learning ecosystem in Julia. The repository's own source is a thin facade module (`src/MLJ.jl`) that re-exports the public API from satellite packages — MLJBase, MLJModels, MLJTuning, MLJEnsembles, MLJIteration, and StatisticalMeasures — plus a small amount of scitype-related code. The actual implementations of fit/predict/transform, learning networks, tuning, ensembling, model composition, and evaluation live primarily in those dependencies. This repo is therefore best understood as the distribution, documentation, integration-testing, and governance hub for the larger MLJ framework rather than a standalone implementation of ML algorithms. In production, users enter through `using MLJ`, load concrete models via `@load`, wrap data and models in `machine(...)`, and drive the system with `fit!`, `predict`, `transform`, `evaluate`, `TunedModel`, `IteratedModel`, `Pipeline`, and related APIs. The system is designed around scientific types and the Tables.jl interface, allowing tabular data to flow uniformly into 200+ models across Julia and other languages, including scikit-learn interop. It supports complex composite workflows: linear pipelines, learning networks/DAGs, target transformations, homogeneous ensembles, stacking, hyperparameter optimization, and performance evaluation. The repository also contains an extensive documentation site, runnable examples, a JOSS paper, and a registry-driven integration test suite. Maintenance is active: the latest commit is recent, CI runs on GitHub Actions, dependabot is configured, and release automation via TagBot is present. Some documentation artifacts show age — for example, the synthetic-data notebook records Julia 1.4.2 — and a few APIs are explicitly experimental, but the core package remains current with the Julia ecosystem and demonstrates disciplined package management across a large dependency graph.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
Taaitaaiger/jlrs ★ 507 23 APPLICATION

jlrs is a Rust library that provides safe, high-performance bindings to the Julia C API, enabling both embedding Julia within Rust applications and exporting Rust functions as Julia modules (via ccall). The architecture is modular, with separate crates for raw FFI (`jl_sys`, `jlrs_sys`), a proc-macro crate (`jlrs_macros`) for derive macros and the `julia_module!` macro, and the main `jlrs` crate offering managed types (`Value`, `Array`, `DataType`), memory safety through scoped GC frames, and multiple runtime modes (local, async via tokio, multi-threaded). The library handles Julia’s garbage collector carefully with custom GC-safe locks and fast thread-local state, and supports advanced features like static arrays, ndarray integration, and opaque Rust types managed by Julia. Key entry points are the `Builder` struct for initializing Julia, runtime handles (`LocalHandle`, `AsyncHandle`, `MtHandle`), and the `julia_module!` macro for exposing Rust code. The codebase is well-tested with integration tests, benchmarks, and CI across Julia LTS and stable versions on Linux, macOS, and Windows.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 3 reusable components found
JuliaSmoothOptimizers/LinearOperators.jl ★ 213 46 APPLICATION

LinearOperators.jl is a Julia library that provides a framework for representing and manipulating linear operators—objects that behave like matrices but are defined by their effect on vectors. It enables lazy composition, transposition, conjugation, and arithmetic (addition, multiplication, scaling) of operators, deferring costly computations until application to a vector. The library includes a rich set of built-in operators: identity, zero, ones, diagonal, restriction/extension, Householder, Hermitian, inverse (via Cholesky, LDL, or general solve), and limited-memory quasi-Newton approximations (L-BFGS and L-SR1) commonly used in optimization. It also provides utility functions for norm estimation, Hermiticity checks, and solving shifted linear systems. The architecture is modular, with a core abstract type hierarchy, separate files for operations, adjoint/transpose wrappers, concatenation, Kronecker product, and timed operators. Extensions support GPU backends (CUDA, AMDGPU, Metal) and automatic differentiation (ChainRulesCore). The code is well-tested, with comprehensive unit tests covering correctness, allocation-free paths, and edge cases. It is primarily used within the JuliaSmoothOptimizers ecosystem for smooth optimization.

RATING: 8.8/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
JuliaDynamics/ConcurrentSim.jl ★ 198 40 APPLICATION

ConcurrentSim.jl is a discrete-event process-oriented simulation framework for Julia, directly inspired by Python's SimPy. It provides a simulation engine where user-defined processes (implemented as coroutines via the ResumableFunctions.jl @resumable macro) yield events that are scheduled on a priority-ordered event heap. The framework offers a complete set of resource primitives for modeling limited-capacity congestion points: Resource (a lock-like container with capacity ≥1), Container (arbitrary capacity with continuous levels), Store (unordered collection with item filtering), QueueStore (FIFO), StackStore (LIFO), and DelayQueue (FIFO with configurable latency). Event operators (&, |) provide combinatorial AND/OR synchronization, and the framework supports both Float64 simulation time and wall-clock DateTime-based scheduling. The architecture is cleanly separated across modules: the Simulation environment manages the event heap, clock, and active process; a shared BaseEvent struct implements the callback mechanism; processes integrate with the event loop via a custom finite-state machine iterator from ResumableFunctions; resources build on a common trigger/dispatch abstraction in resources/base.jl. The codebase displays mature engineering practices: CI across Julia 1.10–1.12 plus nightly (Windows, macOS, Linux), automated static analysis via Aqua and JET, a 14-file test suite with doctests, a benchmark suite comparing old and new process implementations, and comprehensive documentation. It is the successor to SimJulia and one of the longest-lived Julia packages. The repository also contains three example notebooks, but these are legacy artifacts targeting Julia 0.6 (using deprecated APIs like put/release/srand) and should be considered historical rather than current usage guides.

RATING: 8.7/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
JuliaDebug/Infiltrator.jl ★ 496 27 APPLICATION

Infiltrator.jl is a Julia package that provides an interactive debugging macro, @infiltrate, which acts as a breakpoint with negligible runtime overhead. When triggered, it opens a custom REPL (infil>) allowing developers to inspect local variables, stack frames, module bindings, and evaluate arbitrary expressions. It supports conditional breakpoints, toggling infiltration points on/off, exfiltration of variable values to a store, and integration with Revise.jl for live code updates. The package is designed for development-time debugging and enforces that @infiltrate fails at compile time in package code to prevent accidental commits. It relies heavily on Julia internals (REPL, Core.Compiler, Base.@locals) and maintains compatibility across Julia versions 1.6 through 1.13 via version-adaptive code paths and extensive golden-file test outputs. This is a pure developer tool with no data analysis or research orientation.

RATING: 8.6/10 MAINT: active DRIFT: low
â–¸ 2 reusable components found
thofma/Hecke.jl ★ 307 86 APPLICATION

Hecke.jl is a Julia package for computational algebraic number theory, forming a core component of the OSCAR computer algebra system. It provides a comprehensive suite of algorithms for number fields (absolute, relative, simple, non-simple), orders and ideals, class groups, unit groups, elliptic curves (including isogenies, heights, pairings), quadratic and Hermitian forms, local fields, function fields, associative algebras, and Riemann surfaces. The architecture is modular, with separate source files for each algebraic structure, extensive use of caching via attributes, and integration with GAP and Polymake for group-theoretic and polyhedral computations. The library is designed for research mathematicians and relies on the Nemo/AbstractAlgebra ecosystem for base ring infrastructure. The codebase is large (875 files) and well-tested, with a dedicated test suite covering most modules. It includes reusable components such as sparse matrix types, AVL trees, generic map infrastructure, and factored element representations. The package is actively maintained, with recent commits, CI pipelines, and a changelog documenting ongoing development. While some parts are experimental or contain commented-out code, the core algorithms are production-grade and used in research publications. Hecke.jl is primarily a library (application) rather than a data pipeline, though it includes example scripts and benchmarks that demonstrate research workflows. Its primary purpose is to provide efficient, rigorous implementations of number-theoretic algorithms for use by mathematicians and computer algebra systems.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
JuliaDynamics/ChaosTools.jl ★ 200 49 APPLICATION

ChaosTools.jl is a Julia library providing tools for analyzing nonlinear dynamics and chaotic behavior. It offers functionality for calculating Lyapunov exponents, detecting chaos via methods like GALI and the 0-1 test, analyzing predictability, finding fixed points and periodic orbits, estimating signal periods, analyzing rare events through return time statistics, and performing dimensionality reduction. The package is designed to work with DynamicalSystems.jl and can be used as a standalone package or as part of the broader DynamicalSystems ecosystem. The architecture follows a modular organization with functions grouped by topic (chaos detection, dimensionality reduction, periodicity, etc.), leveraging Julia's multiple dispatch and type system for clean, reusable code.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
JuliaPlots/Plots.jl ★ 1953 385 APPLICATION

Plots.jl is a comprehensive, multi-backend plotting library for Julia, organized as a monorepo containing several interdependent packages: PlotsBase (core plotting infrastructure), RecipesBase/RecipesPipeline (a macro-driven recipe system for defining custom plot types), GraphRecipes (graph and tree visualization), StatsPlots (statistical plots like boxplots, violin plots, histograms, and correlation plots), and PlotThemes (color themes). The library provides a unified API over backends including GR, PythonPlot, PlotlyJS, PGFPlotsX, UnicodePlots, and Gaston, allowing users to switch between interactive and static output without changing code. The architecture is centered on a preprocessing pipeline that transforms input data and attributes through alias resolution, magic argument expansion, and recursive recipe application before delegating to the chosen backend. This design enables extensibility: package authors can define new plot types via the lightweight RecipesBase dependency without pulling in the full Plots stack. While primarily a general-purpose visualization library, it includes strong support for scientific and research workflows through statistical plots, graph layouts, unitful quantities, HDF5 persistence, and animations. The codebase is large and macro-heavy, with some backends lagging in feature parity and occasional deprecated API usage, but overall it is actively maintained and well-tested.

RATING: 8.4/10 MAINT: active DRIFT: medium
â–¸ 6 reusable components found
FedeClaudi/Term.jl ★ 493 43 APPLICATION

Term.jl is a Julia library for producing styled, beautiful terminal output. Inspired by Python's Rich library, it provides a markup language for inline color and style formatting (e.g., `{red}text{/red}`), a hierarchy of renderable objects (Panel, Table, Tree, Dendogram, ProgressBar), and interactive widgets (App, Menus, Pager, Buttons). The library also includes enhanced logging, stack trace rendering, progress bars, custom REPL display, and markdown rendering. Its architecture is modular: core types like `AbstractRenderable`, `Segment`, and `Measure` form the foundation, with composition via overloaded `*` (horizontal stack) and `/` (vertical stack) operators. A theme system centralizes styling. The codebase is well-tested with golden-file snapshots, but includes some platform-specific assumptions and absolute file paths in test fixtures that limit portability. Overall, it is a mature, feature-rich terminal UI toolkit with high craftsmanship.

RATING: 8.1/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
JuliaPy/PyPlot.jl ★ 488 90 APPLICATION

PyPlot.jl is a Julia package that provides a direct interface to the matplotlib.pyplot library from Python, enabling Julia users to create plots using Matplotlib's extensive plotting capabilities. The package uses PyCall to call Matplotlib functions with minimal overhead, passing Julia arrays without copying. It integrates with Julia's multimedia I/O system to display plots in various backends (including IJulia, Jupyter, and GUI windows) and supports automatic backend selection based on available dependencies. The architecture consists of a core module handling the PyPlot interface, separate modules for colormap management and 3D plotting, and initialization code that configures the Matplotlib backend and sets up integration with Julia's display system. Key features include support for LaTeX in plot labels via LaTeXStrings, automatic figure management in interactive environments, and compatibility with both Julia-based and Python-based GUI backends.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
JuliaMath/FFTW.jl ★ 300 61 APPLICATION

The FFTW.jl package provides Julia bindings to the FFTW library for performing fast Fourier transforms (FFTs) and related operations. It also supports Intel's MKL as an alternative backend via the MKL_jll package. The package is designed as a drop-in replacement for the FFT functionality that was formerly part of Base Julia, and it integrates with the AbstractFFTs.jl package to provide a unified interface for various FFT implementations. The architecture of the package centers around the FFTW module, which re-exports AbstractFFTs and defines concrete implementations of FFT plans for the FFTW and MKL libraries. Key features include support for multi-dimensional transforms, in-place and out-of-place operations, real-to-real transforms (including various types of discrete cosine and sine transforms), and thread-safe execution through the use of a global lock and careful management of plan lifecycle to avoid issues with the garbage collector during planning. The package allows users to switch between the FFTW and MKL backends at runtime (requiring a restart for the change to take effect) via the `set_provider!` function. One notable aspect of the codebase is its handling of thread safety and resource management. The package uses a reentrant lock to protect calls into the FFTW library, which is not thread-safe by default, and integrates with Julia's threading system to allow FFTW to utilize multiple threads. Additionally, it employs a deferred destruction mechanism for FFTW plans to prevent the garbage collector from running during critical planning operations, which could lead to deadlocks. These patterns demonstrate a high level of expertise in wrapping C libraries in Julia while maintaining safety and performance. The package is actively maintained, with recent commits and ongoing issue triage. It keeps pace with its dependencies, as evidenced by compatible version ranges in its Project.toml file, and does not show significant signs of technical debt. Overall, FFTW.jl is a robust and well-engineered solution for performing FFTs in Julia, suitable for both interactive use and high-performance applications.

RATING: 8.0/10 MAINT: active DRIFT: low
â–¸ 1 reusable components found
symengine/SymEngine.jl ★ 198 42 APPLICATION

SymEngine.jl is a Julia wrapper for the SymEngine C++ symbolic mathematics library. It provides symbolic types (`Basic`), algebraic operations, calculus (differentiation, series expansion), substitution, numeric evaluation, and matrix operations (LU decomposition, determinants). The package uses C library calls via Julia's `ccall` and `SymEngine_jll` binaries, managing memory with finalizers. It extends Julia's generic interfaces (`+`, `*`, `diff`, etc.) for symbolic expressions and offers macros (`@vars`, `@funs`) for convenient variable and function declarations. The extension module for `TermInterface` allows integration with generic symbolic manipulation frameworks. The codebase is well-structured, with separate files for types, math operations, simplification, display, and dense matrix handling. It is production-ready, with CI testing across Julia versions and platforms, and is actively maintained with regular dependency updates via Dependabot. The primary use case is as a library for symbolic mathematics in Julia, suitable for research, education, and applications requiring algebraic manipulation.

RATING: 8.0/10 MAINT: maintained DRIFT: low
â–¸ 3 reusable components found
comonicon/Comonicon.jl ★ 300 26 APPLICATION

Comonicon is a Julia CLI generator that transforms function definitions and docstrings into full-featured command-line interfaces with zero duplication, zero overhead, and zero dependencies after code generation. The system follows a classic compiler pipeline: Julia source code is parsed by the frontend (@cast/@main macros) into an AST representation, which is then walked by the codegen module to produce executable Julia Expr, and finally processed by the builder module for installation, system image generation, and distribution. Key features include automatic CLI documentation generation from docstrings, shell completion generation (bash/zsh), and flexible build options via PackageCompiler. The architecture shows clear separation of concerns across frontend, AST, codegen, and builder modules, with thoughtful use of Julia's macro system and type features.

RATING: 7.7/10 MAINT: maintained DRIFT: medium
â–¸ 3 reusable components found
$ loading more...
$ submit: