Custom NXS
Templates, nxs.toml, checklist, and wiring into search path.
Custom NXS extend the official set without changing the fuzzer core. They must obey CONTRACT.md.
Templates
Shipped under nxs/templates/: rust, c, go, python. Each includes nxs.toml and a minimal entrypoint.
cp -r nxs/templates/rust ~/.nexsiz/nxs/src/my-chain
cd ~/.nexsiz/nxs/src/my-chain
# edit src/main.rs + nxs.toml (stable id, categories, events)
cargo build --release
mkdir -p ~/.nexsiz/nxs/bin
cp target/release/nxs-* ~/.nexsiz/nxs/bin/
chmod +x ~/.nexsiz/nxs/bin/nxs-*
nxs.toml skeleton
id = "custom/my-chain"
name = "my-chain"
version = "0.1.0"
categories = ["custom"]
events = ["crash", "hang", "interesting"]
description = "Operator-specific deepening logic."
language = "rust"
entry = "bin/nxs-my-chain"
[args]
# script-specific defaults
Checklist
- Executable (
chmod +x/.exe) - Support
--crash,--target,--meta,--out,--help,--version - Honour exit codes 0–4; use ≥10 only for documented script-specific success
- Ignore unknown meta fields
- Do not block on stdin without reason
- Stable
id(category/name) - Recommended:
report.jsonwhen--outgiven;-vstderr log; internal timeout
Wire into Nexsiz
# by concrete id
nexsiz -h 10.0.0.5 -p 21 -m ftp --nxs custom/my-chain -v
# via search path
export NEXSIZ_NXS_PATH=$HOME/.nexsiz/nxs/bin
nexsiz --nxs custom/my-chain --nxs-list
Shared helpers: nxs-lib (Args, Meta, Report, ExitCode) for official Rust NXS — templates may use stdlib-only or link nxs-lib depending on layout.
Authorised use
Custom NXS that probe authentication or chain behaviour must only run against systems you are authorised to test. See Authorised Use.