The client implementations in libupsclient (C), libnutclient (C++), PyNUT (Python), Nut.pm (Perl), and jNut (Java) were audited against the NUT network protocol defined in docs/net-protocol.txt.
The C library is the most mature and complete implementation, used by most core NUT utilities (upsc, upscmd, upsrw, upsmon).
- Commands: Supports all protocol commands:
GET,LIST,SET,INSTCMD,LOGIN,LOGOUT,USERNAME,PASSWORD,VER,NETVER,HELP,STARTTLS,PRIMARY/MASTER,FSD. - Sub-commands: Full support for
GET(VAR, TYPE, DESC, CMDDESC, UPSDESC, NUMLOGINS) andLIST(UPS, VAR, RW, CMD, ENUM, RANGE, CLIENT). - SSL/TLS: Comprehensive support for both OpenSSL and Mozilla NSS backends via
upscli_sslinitandupscli_tryconnect. - Tracking: Implements protocol 1.3
TRACKINGsupport (GET/SET TRACKING).