Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. gosl

gosl

BSD-3-ClauseGov1.2.12

A comprehensive Go scientific library for numerical simulations, linear algebra, differential equations, and computational geometry.

GitHubGitHub
1.9k stars147 forks0 contributors

What is gosl?

Gosl is a Go scientific library designed for developing numerical simulations and solvers for differential equations. It provides essential functions for linear algebra, numerical methods, special functions, and computational geometry, focusing on high performance by linking with established C and Fortran libraries like OpenBLAS and LAPACK.

Target Audience

Researchers, engineers, and developers working on scientific computing, numerical simulations, and differential equation solvers who want to leverage Go's simplicity while maintaining high computational performance.

Value Proposition

Gosl offers a unique combination of Go's developer-friendly ecosystem with the raw performance of battle-tested C/Fortran numerical libraries, making it ideal for building efficient scientific simulations without sacrificing productivity.

Overview

Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.

Use Cases

Best For

  • Developing numerical solvers for ordinary and partial differential equations
  • High-performance linear algebra computations in Go applications
  • Implementing spectral methods and finite element analysis
  • Scientific simulations requiring FFT, Bessel functions, or orthogonal polynomials
  • Computational geometry and 3D interpolation tasks
  • Generating random numbers and probability distributions for simulations

Not Ideal For

  • Projects requiring simple, dependency-free installation without Docker or system-level libraries
  • Teams that need pure Go solutions to avoid CGO-related build and portability issues
  • Applications relying on integrated plotting or machine learning features, which were removed in recent versions

Pros & Cons

Pros

High-Performance Computation

Leverages proven C and Fortran libraries like OpenBLAS and LAPACK, ensuring computational efficiency that naive Go implementations cannot match, as the README states naive Go matrix multiplication is over 100 times slower.

Clean Go API

Provides a developer-friendly Go interface for complex numerical methods, abstracting the underlying C/Fortran libraries to simplify usage for Go programmers.

Comprehensive Numerical Toolset

Includes essential packages for linear algebra, differential equations, FFT, and geometry, covering a wide range of scientific computing needs from the README's listed features.

Containerized Development Support

Offers Docker-based setup that works out of the box on multiple platforms, as highlighted in the installation guide, making it easier to start without system-level configurations.

Cons

Installation Complexity

Native installation requires manually installing multiple system libraries like FFTW3 and MUMPS on Debian/Ubuntu, which can be error-prone and less straightforward on other operating systems.

CGO Dependency

Relies on CGO to interface with external libraries, introducing potential build issues, portability challenges, and compatibility problems compared to pure Go codebases.

Limited Scope After Refactoring

Recent versions removed packages such as machine learning and plotting for maintenance, narrowing the library's focus and forcing users to seek external solutions for those features.

Frequently Asked Questions

Quick Stats

Stars1,876
Forks147
Contributors0
Open Issues0
Last commit5 months ago
CreatedSince 2015

Tags

#scientific-computing#fft#differential-equations#high-performance#eigenvalues#sparse-systems#probability-distributions#fast-fourier-transform#eigenvectors#linear-algebra#optimization#go#numerical-methods#computational-geometry

Built With

G
Go
F
FFTW3
c
cgo
O
OpenBLAS
D
Docker
L
LAPACK

Included in

Go169.1k
Auto-fetched 21 hours ago

Related Projects

gonumgonum

Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more

Stars8,384
Forks580
Last commit1 month ago
statsstats

A well tested and comprehensive Golang statistics library package with no dependencies.

Stars3,018
Forks174
Last commit1 month ago
plotplot

A repository for plotting and visualizing data

Stars2,955
Forks202
Last commit1 month ago
streamtoolsstreamtools

tools for working with streams of data

Stars1,311
Forks104
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub