Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. shogun

shogun

BSD-3-ClauseC++shogun_6.1.4

A unified and efficient machine learning toolbox with C++ core and multi-language interfaces, developed since 1999.

Visit WebsiteGitHubGitHub
3.1k stars1.0k forks0 contributors

What is shogun?

SHOGUN is a comprehensive, open-source machine learning toolbox that provides a unified framework for efficient algorithm implementation and experimentation. It offers a stable and mature platform, actively developed since 1999, for tackling diverse machine learning tasks with high-performance C++ implementations accessible through multiple programming languages.

Target Audience

Machine learning researchers and practitioners who need a cross-platform, high-performance toolbox with multi-language support for algorithm development and experimentation. It is particularly suited for those working in environments requiring integration across programming ecosystems like Python, R, Java, or C#.

Value Proposition

Developers choose SHOGUN for its long-term stability, extensive algorithm library optimized in C++, and automatically generated bindings for numerous languages, enabling seamless use across different programming environments without sacrificing performance. Its emphasis on unification and efficiency bridges cutting-edge research with practical implementation.

Overview

Shōgun

Use Cases

Best For

  • Implementing machine learning algorithms in high-performance C++ with bindings for multiple languages like Python, R, or Java.
  • Cross-platform machine learning development on GNU/Linux, macOS, FreeBSD, or Windows.
  • Researchers needing a stable, mature toolbox for reproducible experiments with comprehensive documentation and examples.
  • Integrating machine learning into applications across diverse programming ecosystems without rewriting code for each language.
  • Educational use through Jupyter notebooks, cookbooks, and API examples for learning machine learning concepts.
  • Projects requiring reliable, tested algorithms with continuous integration and unit testing for stability.

Not Ideal For

  • Projects exclusively focused on deep learning with frameworks like TensorFlow or PyTorch
  • Teams needing lightweight, single-language libraries for rapid prototyping or deployment
  • Environments where R or JavaScript is the primary language, as bindings are in beta or pre-alpha
  • Applications requiring drag-and-drop GUI tools or simplified APIs for non-technical users

Pros & Cons

Pros

Multi-language Interfaces

Automatically generated bindings for Python, Octave, Java, and more, enabling seamless integration across programming ecosystems as highlighted in the README.

Cross-platform Support

Runs on GNU/Linux, macOS, FreeBSD, and Windows, ensuring broad accessibility and deployment flexibility for diverse environments.

Extensive Algorithm Library

Implements a wide range of machine learning methods in C++ for high performance and computational efficiency, supporting diverse tasks.

Stable and Mature

Actively developed since 1999 with comprehensive testing and continuous integration, providing a reliable platform for research and practice.

Cons

Beta Language Bindings

Interfaces for R, Perl, and JavaScript are marked as beta or pre-alpha, which can lead to instability or missing features for production use in those languages.

Complex Installation

Requires building from C++ source with dependencies, making setup more involved compared to pip-installable Python libraries, as noted in the installation instructions.

Limited Modern Focus

Emphasizes traditional ML algorithms; may lack extensive support for contemporary deep learning architectures compared to specialized frameworks.

Frequently Asked Questions

Quick Stats

Stars3,073
Forks1,031
Contributors0
Open Issues413
Last commit2 years ago
CreatedSince 2011

Tags

#multi-language#research-tool#data-science#cmake#c-plus-plus#algorithm-library#open-source-ml#python-bindings#cross-platform#swig#artificial-intelligence#machine-learning

Built With

R
Ruby
O
Octave
S
Scala
R
R
C
CMake
P
Python
J
Java
L
Lua
C
C++

Links & Resources

Website

Included in

Machine Learning72.2kC/C++70.6kData Science3.4kML with Ruby2.2k
Auto-fetched 4 hours ago

Related Projects

PyTorch - Tensors and Dynamic neural networks in Python with strong GPU accelerationPyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration

Tensors and Dynamic neural networks in Python with strong GPU acceleration

Stars101,899
Forks28,473
Last commit4 hours ago
OpenCVOpenCV

Open Source Computer Vision Library

Stars90,111
Forks56,922
Last commit21 hours ago
keraskeras

Deep Learning for humans

Stars64,175
Forks19,744
Last commit1 day ago
streamlitstreamlit

Streamlit — A faster way to build and share data apps.

Stars45,326
Forks4,331
Last commit9 hours 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