Reference

CLI and network reference

Verified against the current nexir 0.1.0-beta.3 (beta) CLI and default configuration.

CLI

nexir [--accept-terms] [OPTIONS]
nexir healthcheck
nexir --accept-terms recover inspect [--storage-path PATH]
nexir --accept-terms recover force-new-cluster [--commit --confirm-node-id ID]
  [--rpc-addr ADDR] [--redis-addr ADDR] [--storage-path PATH]
OptionBehavior
-h, --helpPrint help and exit
-V, --versionPrint version and exit
--listExit without starting the server
--accept-termsAccept the Nexir Binary License and Use Terms v1.0, record acceptance, and continue the requested operation
healthcheckSend a RESP PING to the configured local endpoint and fail unless it returns PONG
No argumentsStart RESP, Raft gRPC, Prometheus, and storage subsystems after terms acceptance

Offline recovery

CommandBehavior
recover inspectRead-only report of node identity, vote, cluster UUID, indexes, and membership
recover force-new-clusterDry-run survivor conversion; changes nothing
recover force-new-cluster --commit --confirm-node-id IDCommit conversion to a new one-voter cluster identity

Exit behavior

Help, version, and --list exit successfully. Unknown arguments, invalid recovery syntax, and recovery refusal exit with status 2. Startup I/O/configuration failures return a nonzero process status. Exact status codes beyond these verified CLI cases are not a stable public-beta contract.

Network ports

SurfaceDefaultProtocolTLS
Client127.0.0.1:6379RESP2 over TCPOptional required mTLS
Cluster127.0.0.1:50051gRPC over HTTP/2Optional required peer mTLS
Metrics127.0.0.1:9090Prometheus HTTPNone

Environment naming

Configuration fields map to uppercase NEXIR__SECTION__FIELD names. Nested TLS fields add another double-underscore segment. Examples:

NEXIR_ACCEPT_TERMS=1
NEXIR__SERVER__REDIS_BIND=10.0.0.11:6379
NEXIR__RAFT__NODE_ID=1
NEXIR__STORAGE__PATH=/var/lib/nexir
NEXIR__SERVER__TLS__CLIENT__MODE=require
NEXIR__PROMETHEUS__BIND=10.0.1.11:9090
RUST_LOG=info

NEXIR__PROMETHEUS__PORT is a deprecated compatibility override for only the port. Prefer NEXIR__PROMETHEUS__BIND.

Cluster lifecycle commands

CommandPurpose
INIT id grpc redisInitialize exactly one fresh node as a one-voter cluster
CLUSTER ADD id grpc redis [TIMEOUT ms]Validate, add, and catch up a learner
CLUSTER PROMOTE idTurn a learner into a voter
CLUSTER DEMOTE idRetain a non-leader voter as learner
CLUSTER REMOVE idCompletely remove a voter or learner
CLUSTER UPDATE-ADDR id grpc redisGuarded change of advertised addresses
CLUSTER TRANSFER-LEADER idRequest leadership by a caught-up voter
CLUSTER STEPDOWNTransfer to the best caught-up voter

Mutating operations must reach the leader. When admin commands are disabled, they return an explicit error.

Cluster inspection commands

CommandReturns
CLUSTER INFOText state, role, leader, UUID, term, indexes, membership state
CLUSTER MEMBERSStructured member rows with role, addresses, leader, match, lag
CLUSTER IDENTITYLocal node ID, UUID, initialized flag
CLUSTER STATUSSerialized Raft metrics diagnostic payload
CLUSTER SLOTSSingle 0..16383 compatibility range
CLUSTER NODESRedis-style compatibility topology text

Protocol hard limits

LimitValue
Command name512 bytes
Key1 MiB
Value60 MiB
Aggregate request60 MiB
Request multibulk arguments128 while the surface is scalar-only
RESP array outer ceiling25,000 elements

For the full command surface and behavior, see Redis compatibility. For all operational settings, see Configuration.