Skip to content

Installation

Releases are cut by release-please; each GitHub release ships Linux x86_64 artifacts for the mts CLI built from the nix flake.

AppImage bundles

gh release download --repo lambdasistemi/haskell-mts --pattern '*.AppImage'
chmod +x mts-v*.AppImage
./mts-v*.AppImage --version

Docker images

The tarball loads as ghcr.io/paolino/mts/mts with mts as entrypoint:

gh release download --repo lambdasistemi/haskell-mts --pattern '*docker*'
i=$(docker load < mts-v*-docker.tar.gz | sed -e 's/Loaded image: //')
docker run $i --version

DEB packages

gh release download --repo lambdasistemi/haskell-mts --pattern '*.deb'
sudo dpkg -i mts-v*.deb

RPM packages

gh release download --repo lambdasistemi/haskell-mts --pattern '*.rpm'
sudo rpm -i mts-v*.rpm

Building from source

You can build with nix

Terminal
 
nix shell nixpkgs#cachix -c cachix use paolino
nix shell github:lambdasistemi/haskell-mts --refresh

Or via cabal provided you have a working Haskell environment and rocksdb development files installed.

cabal install

WASM Outputs And Preview Commands

The flake exports the combined browser-WASM bundle plus one package per module (x86_64-linux only, where the GHC WASM toolchain is available):

nix build .#wasm-artifacts
nix build .#csmt-verify-wasm
nix build .#csmt-write-wasm
nix build .#mpf-verify-wasm
nix build .#mpf-write-wasm

It also exports local preview commands for each static bundle:

PORT=8000 nix run .#csmt-verify-wasm-demo
PORT=8001 nix run .#csmt-wasm-write-demo
PORT=8002 nix run .#mpf-wasm-write-demo
PORT=8003 nix run .#docs

Start With The Tutorials

Once the project builds, the fastest way to understand the current user-facing behavior is:

  1. CLI Manual for the CSMT command-line workflow
  2. CSMT WASM Verifier Demo for read-only proof checking
  3. CSMT WASM Write Demo for browser-side mutation
  4. MPF WASM Write Demo for MPF build/prove/verify with Aiken-compatible proofs