Repository navigation
CLI v1.0.0
·
17 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
The first stable release of Security Engineering Commons CLI. Provides bounded command parsing and deterministic Cobra-style help through a small dependency-free Go API
Included
- Explicit commands and optional root actions
- Standard short, long, single-dash, double-dash, equals and separate-value option forms
- String and Boolean options with validated defaults
- Persistent global options before or after commands
- Required command options and bounded positional arguments
- Named-command precedence over root actions
- Built-in root and contextual help actions
- Built-in version actions through
v,version,-v,--vand--version - Deterministic UTF-8 help and diagnostics
- Strict definition, name, summary, argument-count and input-byte bounds
- Rejection of duplicate options, ambiguous aliases, malformed input, invalid UTF-8 and control characters
- Immutable copied definitions and independently owned invocation state
- Allocation-free indexed argument and option access
- Concurrent parser use
- Inspectable
ErrDefinitionandErrInvocationerrors - No production-module dependencies
Performance
- Common parsing and simple actions perform zero allocations
- Root-only parser construction performs zero allocations
- Representative parser construction retains two backing allocations
- Help and diagnostics allocate only their caller-owned result
- Caller-buffer ownership is preserved without exposing internal state
Full Linux AMD64 measurements and the benchmark command are retained in the README
Coverage
- 100% atomic first-party statement coverage
- Windows and Linux race-detector execution
- Parser, definition, root-action and help-size fuzzing
- Go 1.24, 1.25 and 1.26 compatibility
- Production cross-builds across all 48 targets reported by the Go 1.24 toolchain
- Production and verification-tool vulnerability scans
Requirements
- Go 1.24 or newer
Install
go get github.com/secengcommons/cli@v1.0.0