Projects / nanoserv


Nanoserv is a sockets daemon toolkit for PHP 5.1+. It is object oriented and features native support for TCP with SSL/TLS and UDP connections, multiplexing and forking listeners, handlers for raw connections, line input, HTTP, SMTP, XML-RPC, Syslog, transparent inter-process communications with forked handlers, and more.


Recent releases

  •  29 Nov 2011 22:00

    Release Notes: This release adds an asynchronous HTTP server class (see handlers/HTTP/Server), and has speed optimizations in the core and HTTP. It fixes stream write buffers and Socket::Write_From_Stream(), delayed handling of outgoing connections timeouts, and a descriptor leak when __destruct() was delayed after peer disconnect. "make install" now works correctly on OS X.

    •  17 Sep 2010 18:57

      Release Notes: This release adds support for Unix sockets, write buffer optimizations, a telnet protocol handler, JSON_RPC based server classes, better handling of TLS/SSL crypto errors, and stream write buffers. It fixes the XML-RPC server so that non-typed parameters are cast to strings, SSL/TLS handshake timeout with high latency connections, a SOAP handler ReflectionClass error in the namespace build, compatibility problems in configure and Makefile, and "self::" callbacks for PHP versions lower than 5.3.

      •  13 Jan 2010 21:23

        Release Notes: This release adds the method Socket::Block_Reads() to help implement flow control mechanisms, and fixes a bug when timers could be delayed by a long call to select().

        •  10 Nov 2009 22:29

          Release Notes: New features include optional compression in the HTTP server, updated examples, a method Core::Get_Timers() that returns all registered and active timers, and microsecond precision timers. Bugfixes include a missing carriage return + line feed in handlers/HTTP/Server, a SimpleXMLElement error in XML-RPC server with namespaces enabled, PHP open tags (short -> long) in example scripts, and a bad filename in handlers/base_child.phph (namespaces build).

          •  21 Oct 2009 18:33

            Release Notes: This release uses a preprocessor to build with or without namespaces support. Core and handlers now throw exceptions on fatal errors. This release adds block_reads to the Socket class to enable flow control. Socket::Set_Blocking() now returns a bool (true = success). A DHCP Server handler has been added. Many small bugs in HTTP and XML_RPC servers have been fixed.

            Recent comments

            21 Oct 2009 18:35 six0r

            @winbackgo: there are many examples provided in the tgz (see the examples directory)

            30 Jun 2009 10:04 winbackgo

            Where it is possible to find an example of a multithread daemon using nanoserv?


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.