Julia bindings for the libsemigroups C++ library
Semigroups.jl provides a Julia interface to libsemigroups through two components:
- libsemigroups_julia - A C++ glue library that wraps libsemigroups using CxxWrap
- Semigroups.jl - The Julia package providing a high-level, idiomatic Julia API
- Julia ≥ 1.9
- libsemigroups installed system-wide (tested with version ≥ 3.2.0)
- CMake ≥ 3.15
- C++17 compiler
Currently, this package is under development. To install from the local repository:
using Pkg
Pkg.develop(path="/path/to/Semigroups.jl")The C++ glue library (libsemigroups_julia) will be automatically built during package precompilation.
Pkg.precompile()With the package installed, the tests can be run with:
Pkg.test()Or as a one-liner:
julia --project=. -e 'using Pkg; Pkg.test()'This should be expanded to a more robust test suite as the package grows.