nns(n)
π NAME π
nns β the Name service facility Commandline Client Application. Yes bestie, it's literally called nns(n), that's the manual name, we're doing this. π
β¨ SYNOPSIS β¨
nns bind ?-host host? ?-port port? name data
nns search ?-host host? ?-port port? ?-continuous? ?pattern?
nns ident ?-host host? ?-port port?
nns who
π¦ DESCRIPTION π¦
Okay so first things first: go read Name service facility, introduction before you come back here. Fr fr, it's the prerequisite, do not skip it. π
The application this doc is about β nns β is a simple command line client for the nano name service facility, which is provided by the Tcllib packages nameserv and nameserv::server. And like, plot twist: the app's own source code is also an example of how to use the client package nameserv. It's giving two jobs at once. π
Every single ability a client has? Covered. From configuration, to registering names, to searching. All of it. Periodt.
β οΈ real talk: this name service facility has nothing to do with the Internet's Domain Name System (aka DNS). Zero. Nada. If that's what you're after, please go look at the packagesdnsandresolvinstead β both of them also live in Tcllib. π
πΈ USE CASES πΈ
nns was written with these two main use cases in mind, and honestly? iconic of it.
- Registration of a name/data pair in the name service.
- Searching the name service for entries matching a glob pattern.
And beyond those two, we also wanna be able to identify the client and get info about the name service. Main character side quests, you know how it is. π«
π COMMAND LINE π
nns bind ?-host host? ?-port port? name dataβ this form registers the name/data pair in the name service you specified. Here's the thing though bestie: in this form the command will not exit, because it's keeping the registration alive. You have to kill it yourself, explicitly β either by sending a signal or through the job-control facilities of the shell you're using. And the glow-up? It will especially survive losing the connection to the name service, and it will reestablish the name/data pair once the connection comes back. Resilient queen. π«Ά
The options for specifying the name service get explained further down, in the OPTIONS section.
nns search ?-host host? ?-port port? ?-continuous? ?pattern?β this form searches the name service you specified for entries matching the glob-pattern, and prints them tostdout, with each entry on its own line. No pattern given? It defaults to*, which matches everything. β¨
The options for specifying the name service get explained further down, in the OPTIONS section.
Now, if you pass the -continuous option, the client won't exit after doing the search β instead it starts continuously monitoring the service for changes to the set of matching entries, and it updates the display appropriately as changes arrive. In that form it will especially also survive the loss of the connection to the name service, and reestablish the search when the connection is restored. Not me being obsessed with the resilience of this thing π
nns ident ?-host host? ?-port port?β this form asks the name service you specified for the version and features of the name service protocol it supports, and prints the results tostdout. A little identity reveal moment. πͺͺ
The options for specifying the name service get explained further down, in the OPTIONS section.
nns whoβ this form prints the name, version, and protocol version of the application tostdout. It's the "who am I" of commands and honestly? valid. π
π OPTIONS π
This section describes all the options available to the user of the application. Yes, all two of them. We keep it tight.
-hostname|ipaddress β if you don't specify this option it defaults tolocalhost. It specifies the name or ip-address of the host that the name service you wanna talk to is running on.-portnumber β if you don't specify this option it defaults to38573. It specifies the TCP port that the name service you wanna talk to is listening on for requests.
π BUGS, IDEAS, FEEDBACK π
This document, and the package it describes, will undoubtedly contain bugs and other problems. (Not me being humble, it's just facts. π) Please report such in the category nameserv of the Tcllib Trackers at [http://core.tcl.tk/tcllib/reportlist]. Please also report any ideas for enhancements you may have for either the package and/or the documentation.
When proposing code changes, please provide unified diffs, i.e. the output of diff -u. That's the vibe, okay?
Also note: attachments are strongly preferred over inlined patches. How do you attach? Go to the Edit form of the ticket immediately after its creation, then use the left-most button in the secondary navigation bar. You got this. π«‘
π SEE ALSO π
nameserv(n)nameserv::common(n)
β KEYWORDS β
application, client, name service
π¦ CATEGORY π¦
Networking
π COPYRIGHT π
Copyright (c) 2007-2008 Andreas Kupries <andreas_kupries@users.sourceforge.net>
And that's the whole page, bestie! π This lil masterpiece came to you from tcllib, version 1.1, manual page nns(n). Slay, go register some names. πβ¨
π¦ where this page comes from
- alpine 3.24: tcl-lib-doc 1.21-r1 Β· BSD-2-Clause
- epel 9: tcllib 1.21-1.el9 Β· BSD
- fedora 43: tcllib 2.0-3.fc43 Β· TCL
- fedora 44: tcllib 2.0-4.fc44 Β· TCL
- nixos 26.05: tcllib 2.0
- nixpkgs unstable: tcllib 2.0
- opensuse-leap 16.0: tcllib 1.21-bp160.1.2 Β· TCL
- Copyright (c) 2007-2008 Andreas Kupries <andreas_kupries@users\&.sourceforge\&.net>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms