.TH PLUMBER 4
.SH NAME
plumber \- file system for interprocess messaging
.SH SYNOPSIS
.B plumber
[
.B -p
.I plumbing
]
.SH DESCRIPTION
The
.I plumber
is a user-level file server that receives, examines, rewrites, and dispatches
.IR plumb (7)
messages between programs.
Its behavior is programmed by a
.I plumbing
file (default
.BR $HOME/lib/plumbing )
in the format of
.IR plumb (7).
.PP
Its services are posted via
.IR 9pserve (4)
as
.BR plumb .
and consist of two
pre-defined files,
.B plumb/send
and
.BR plumb/rules ,
and a set of output
.I ports
for dispatching messages to applications.
.PP
Programs use
.B fswrite
(see
.IR 9pclient (3))
to deliver messages to the
.B send
file, and
.I fsread
to receive them from the corresponding port.
For example,
.IR sam (1)'s
.B plumb
menu item or the
.B B
command cause a message to be sent to
.BR plumb/send ;
.B sam
in turn reads from, by convention,
.B plumb/edit
to receive messages about files to open.
.PP
A copy of each message is sent to each client that has the corresponding port open.
If none has it open, and the rule has a
.B plumb
.B client
or
.B plumb
.B start
rule, that rule is applied.
A
.B plumb
.B client
rule causes the specified command to be run
and the message to be held for delivery when the port is opened.
A
.B plumb
.B start
rule runs the command but discards the message.
If neither
.B start
or
.B client
is specified and the port is not open,
the message is discarded and a write error is returned to the sender.
.PP
The set of output ports is determined dynamically by the
specification in the plumbing rules file: a port is created for each unique
destination of a
.B plumb
.B to
rule.
.PP
The set of rules currently active may be examined by reading the file
.BR plumb/rules ;
appending to this file adds new rules to the set, while
creating it (opening it with
.BR OTRUNC )
clears the rule set.
Thus the rule set may be edited dynamically with a traditional text editor.
However, ports are never deleted dynamically; if a new set of rules does not
include a port that was defined in earlier rules, that port will still exist (although
no new messages will be delivered there).
.SH FILES
.TF $HOME/lib/plumbing
.TP
.B $HOME/lib/plumbing
default rules file
.TP
.B \*9/plumb
directory to search for files in
.B include
statements
.TP
.B plumb
mount name for
.IR plumber (4).
.SH SOURCE
.B \*9/src/cmd/plumb
.SH "SEE ALSO"
.IR plumb (1),
.IR plumb (3),
.IR plumb (7)
.\" .SH BUGS
.\" .IR Plumber 's
.\" file name space is fixed, so it is difficult to plumb
.\" messages that involve files in newly mounted services.
