Hi there ... I've just uploaded a mature release of NetServer::Generic. (It's been running a bet-the-company mission-critical financial system for two years, so I think it's just about beta-tested ;-) I'm currently considering a new project and just want to clear the proposed module name with you. NetServer::Compiler idph state machine compiler for TCP/IP servers NetServer::Compiler will implement a yacc-like tool for building TCP/IP server daemons. It will accept input files containing state transition rules (defined in an Augmented Backus-Naur form similar to that used by RFC 822), and perl code to associate with each state. The output from NetServer::Compiler will be a perl module that implements the specified protocol using NetServer::Generic or NetServer::FastSelect as a shell. (For example: by feeding an ABNF grammar describing NNTP, and associated perl subroutines for messing with the contents of a news spool directory, NetServer::Compiler will emit a perl module embodying an NNTP server.) Alternatively, NetServer::Compiler will load and execute the input file as a server process. The main use of NetServer::Compiler is to rapidly prototype new TCP/IP- based network services. (A secondary -- speculative -- use is to provide a complete drop-in 100% pure perl replacement for inetd :-). This may need to be accompanied by NetServer::FastSelect. NetServer::Generic's non-forking, single-threaded (select-based) server mode is currently defective insofar as it can block under heavy i/o loads. To address this, I've written a non-blocking select-based server module, but it breaks with the NetServer::Generic API. I haven't released this yet, and am considering using it as the server back-end for NetServer::Compiler. (I should add that I've been thinking about N:C a fair bit lately but haven't actually begun bending code. Still got a few chapters of the Dragon book to read ...) Any comments? -- Charlie Stross