Re: [dev] plumb 1.0

From: Uriel <uriel_AT_berlinblue.org>
Date: Wed, 14 Jul 2010 19:25:56 +0200

While this seems like an interesting project, I would strongly urge
you to change the name, "Plumb" is already used by a way too similar
project and will just cause confusion:

http://doc.cat-v.org/plan_9/4th_edition/papers/plumb

uriel

On Wed, Jul 14, 2010 at 6:00 PM, Mate Nagy <mnagy_AT_port70.net> wrote:
> Hello all,
>
> here I am advertising my own personal project. (Technically it's a
> complete rewrite, the old version was announced here once before.)
>
> Home page: http://repo.hu/projects/plumb/
>
> Plumb is a program that runs multiple processes and lets you define
> arbitrary pipes between them (it uses libevent to manage the data
> transfer).
>
> The major new feature in the rewrite is that it has a fairly comfy
> "control language" that it can also read from pipes in runtime; this
> means that a program running under Plumb can start new processes, shut
> down old ones, create or kill pipes.
>
> The simplest, most common application would be to start two processes
> and connect them in a "69" configuration - STDIN to STDOUT of the other.
> This is how you can use Animator (http://repo.hu/projects/animator/)
> to write simple interactive apps.
>
> A slightly more complex application: I wrote an interactive, graphical
> Gopher client in AWK. It uses Animator for the display, and spawns nc
> for downloads as needed. Multiple downloads can be ongoing at the same
> time. It manages all this from a simple AWK script that does nothing
> else but read from STDIN and write to STDOUT.
>
> There's another tool that is part of the "Plumb package", called
> plumbnet. It's a TCP server that listens on a port and accepts
> multiple connections at once (again, using libevent).
> It writes lines received from connections to STDOUT, and reads
> lines to send on its STDIN. Connections are distinguished by
> integer connection ID prefixes in either direction.
>
> You'd tipically use plumbnet by wiring it together with your program
> using Plumb. It may be a good alternative to inetd, when you
> want to accept multiple TCP connections but there is common state
> (so you'd have to do some sort of IPC, or write a complete network
> daemon from scratch).
>
> Plumb basically lets you use STDIN/STDOUT in new and flexible ways.
> Most of this was possible to do before by hand (e.g. by using mkfifo),
> but with Plumb, it should be much more comfortable. I don't know,
> it might even serve to connect a controlling script with a window
> manager, so the wm logic is moved outside the core wm :)
>
> The core use case is probably the "hack up something fast" "i really
> like AWK" "i'm at a programming compo" scenario.
>
> Suggestions/complaints/bug reports/flame is very welcome as usual
> (except regarding the license or VCS ;)
>
> Thanks for reading,
>  Mate
>
>
Received on Wed Jul 14 2010 - 19:25:56 CEST

This archive was generated by hypermail 2.2.0 : Wed Jul 14 2010 - 19:36:02 CEST