Pi3Web 2.0.3

Pi3Web is a multithreaded, highly configurable multiple platform HTTP 1.0/1.1 web server written in C .
Pi3Web is a multithreaded, highly configurable multiple platform HTTP 1.0/1.1 web server written in C . Pi3Web 2.0 supports among other things CGI, FCGI, Win-CGI, SSI, directory indexing, SSL, embedded perl, PHP4, Servlets, JSP and XSLT.

Here are some key features of "Pi3Web":

Cross Platform Design

Pi3Web is to be easily portable to multiple platforms and processor architectures. It is built using the PiAPI platform abstraction library. This library provides a standard interface to files, shared libraries, threads and synchronization objects.

Multithreaded On All Platforms

The Pi3Web is based on a thread execution model for higher concurrency with less system resource utilization. As not all platforms support native multithreading functionality the PiAPI library implements User Context threads by adding additional program stacks and thread scheduling to processes.
Pi3Web uses a configurable number of processes and threads (thread pooling).
Pi3Web can reuse threads, i.e. a thread is not destroyed after serving a request.

Programmable Request Handling

Pi3Web configuration files outline a schema which dictates how loadable classes and objects are linked and nested together. The configuration files not only specify which loadable classes (CGI, FastCGI, SSI etc.) are executed to handle a request allow individual handlers or groups of handlers to be conditional on various aspects of the request, network connection or resource requested.
By this mechanism Pi3Web configuration files give some of the flexibility of a simple programming language.

Server Loadable Plugins

The Pi2API library provides dynamic loading functionality so server components can be loaded on demand and the server extended without compilation or linking. All severe functionality is provided by loadable classes included in the distribution.

Protocol API (IO Extensions or Filters)

Pi3Web uses server loadable classes for IO communication to browsers, CGI programs and fast CGI programs. This allows these mechanisms to be extented to use different transport mechanisms or for IO to be process by filters (such as encryption algorithms).

Comprehensive Server Programming API

Pi3Web uses three API programming libraries, PiAPI, Pi2API and Pi3API. These libraries provide 189 functions for threads, files, processes, utilities, shared libraries and HTTP fuctionality.

CGI and Windows CGI

Pi3Web is bundled with a CGI (Common Gateway Interface) loadable handler for dispatching browser requests to CGI or windows CGI programs.

Fast CGI

The Fast CGI loadable handler can be used to dispatch fast CGI RESPONDER requests to CGI or windows CGI programs to an existing fast CGI application server.

ISAPI 2.0 Extensions

Pi3Web provides an ISAPI Extension 2.0 (MS IIS) compliant handler.

Server-Side Includes

Server-Side Includes (SSI) are supported via the SendSSI server loadable class.

PHP4 Support

There's an embedded PHP4 module in Pi3Web 2.0 for fast PHP4 server side scripting support. PHP can be used as CGI nevertheless. The embedded PHP4 interpreter can be upgraded with the binary packages provided by the php developers.

Strong SSL Encryption

Pi3Web 2.0 supports strong SSLv2, SSLv3 or TLSv1 channel encryption based on openssl.

SSL key and certificate generation

For quick start with SSL the Administration client provides the generation of SSL keys and self signed certificates. Note, that this feature is not for a production SSL server.

Basic Realms and Authentication

Pi3Web supports administration realms, in order to control access rights for groups of users. Users can be authenticated by HTTP Basic authentication, NTLM Authentication or Digest Access Authentication.

Digest Access Authentication

On all platforms you can use this strong, MD5 based challenge response method accordingly to RFC 2069 to authenticate without sending passwords through the network and without storing them at the server, if this feature is also supported by the browser (e.g. Opera).

Complies with HTTP/1.0 and 1.1 Specification

Pi3Web complies with the HTTP/1.0 specification and adds most features of the HTTP/1.1 specification.

HTTP Proxying

The BasicProxy loadable server class provides HTTP caching proxy capabilities.

Connection Reuse via KeepAlive Option

Pi3Web has the configuration option to allow browser-server connection to be reused across multiple request to avoid the overhead of TCP/IP connection establishment and tear-down.

HTTP/1.1 Request Methods

There's built in support for the HTTP/1.1 request methods PUT, DELETE, OPTIONS and TRACE.

Other HTTP/1.1 Features

The server supports simple HTTP/1.1 ranges and chunked encoding.

Virtual Hosting

The VirtualHostByAddress, VirtualHostByName and VirtualHostByURL loadable server classes allow the Pi3Web server to change virtual hosts based on a number of criteria.

Customizable Logging

The ExpressionLogger loadable server class allows customizable logfile to be written. Any number of different logfiles can be written within process resource limits.

Server-Side Image Maps

There's full support for server side image maps now including polygons and ellipse shapes with Pi3Web 2.0.

ISAPI Filters

Pi3Web 2.0 introduces an ISAPI Filter handler to support IIS filters.

Sortable Directory Indexes

Besides the comfortable directory indexing of Pi3Web 1.03 there's now a HTML based sort-by-column directory index.

File upload acc. to RFC 1867

Pi3Web 2.0 supports the browser based file upload in accordance with Netscape's RFC 1867 in a comfortable way.

Administration client

The administration client is available for the Win32 platform. It provides comfortable control of the server status as well as management of general settings, performance, mappings, mime types, users and realms, served interfaces, IP- and non-IP virtual hosts, logging, directory indexing, HTTP and SSL configuration. A remote administration client is under development in order to provide the same functionality for Unix based servers.

Servlet and JSP Support

With Pi3Servlets there's a Servlet API 2.1 compliant Servlet engine and a JSP 1.0 compliant JSP engine available.

Embedded Perl and PSP

With Pi3Perl there's an embedded perl interpreter and a PSP (Perl Server Pages) scripting engine available. Note, that perl based CGI programs are not meant here.

Realtime XSLT

XSLT realtime processing for XML, HTML or docbook sgml files is provided by the Pi3XSLT extension based on libxslt and libxml.

last updated on:
October 30th, 2007, 15:15 GMT
price:
FREE!
developed by:
Holger Zimmermann and John Roy
homepage:
www.pi3.org
license type:
GPL (GNU General Public License) 
category:
ROOT \ Internet \ HTTP (WWW)

FREE!

In a hurry? Add it to your Download Basket!

user rating

UNRATED
0.0/5
 

0/5

Rate it!

Add your review!

SUBMIT