Building & Packaging
Requirements
ISM is only tested and built in GNU/Linux environments. The only actively tested arch is x86_64, but other targets may also work. There is nothing blocking, e.g., aarch64 however less common targets, like POWER, might have issues.
We inherit isalink's requirement of AVX2 and CLMUL due to using simdjson-go
under the hood.
ISM can be built with nix
(strongly recommended) or by installing the dependencies directly:
- go, >= 1.22.5
- a C compiler, tested with GCC 13 but any recent clang version should work too
- GNU make, tested with 4.4.1
- GNU coreutils, tested with 9.3
- GNU findutils, tested with 4.9.0
Building
The build process is only tested for GNU/Linux on x86_64 with machines that have AVX 2 and CLMUL. The recommended way to build ism is to use nix with flakes.
To build the static binaries: nix develop -c make build
If you don't want to use nix
you can also build it directly.
Please note that this is not actively tested, it requires:
- go, >= 1.22.5
- a C compiler, tested with GCC 13 but any recent clang version should work too
- GNU make, tested with 4.4.1
- GNU coreutils, tested with 9.3
- GNU findutils, tested with 4.9.0
To build the static binaries without nix
: make build
Deployment
We only support deployment on NixOS 24.05 (stable version).
At the moment a NixOS module for ISM is available as nixosModules.ism
in the outputs of this flake.