Ashd

Software Screenshot:
Ashd
Software Details:
Version: 0.12
Upload Date: 20 Feb 15
Developer: Fredrik Tolf
Distribution Type: Freeware
Downloads: 3

Rating: nan/5 (Total Votes: 0)

Ashd is a modular HTTP server software based on a multi-program architecture. Whereas most other HTTP servers are monolithic programs with, perhaps, loadable modules, Ashd is composed of several different programs, each of which handles requests in different ways, passing requests to each other over a simple protocol (not unlike Unix pipelines). The design of Ashd brings it a number of nice properties, the following being the most noteworthy ones.

Sanity of design

 The separation of concerns between different, independent programs is an example of standard Unix philosophy – each program does one thing only, but does it well (I hope). The clean delineation of functions allows each program to be very small and simple – currently, each of the programs in the collection (including even the core HTTP parser program, htparser, as long as one does not count its, quite optional, SSL implementation) is implemented in less than 1,000 lines of C code (and most are considerably smaller than that), allowing them to be easily studied and understood.

Security
 Since each program runs in a process of its own, it can be assigned proper permissions. Most noteworthy of all, the userplex program ensures that serving of user home directories (/~user/ URLs, if you will) only happens by code that is actually logged in as the user in question; and the htparser program, being the only program which speaks directly with the clients, can run perfectly well as a non-user (like nobody) and be chroot'ed into an empty directory.

Configuration sanity
 Again, since each program only handles a simple task, its configuration can be made quite simple. There is no need for the dirplex program, which handles only service from physical directories, to care about virtual directories, virtual hosts, HTTP protocol parameters or authentication; just as there is no need for the patplex pattern matcher to know about file types or directory hierarchies. Each program's configuration file format can be kept as simple as possible, and most programs are configured simply with command-line options.

Persistence
 Though Ashd is a multi-process program, it is not in the same sense as e.g. Apache. Each request handler continues to run indefinitely and does not spawn multiple copies of itself, meaning that all process state persists between requests – session data can be kept in memory, connections to back-end services can be kept open, and so on.

What is new in this release:

  • This version added support for chunked request-bodies, improved overall behavior when handler programs are overloaded, improved shutdown behavior, and fixed and improved various lesser things.

What is new in version 0.11:

  • dirplex configuration was made more useful, and the default configuration files were improved.
  • There was also a bunch of minor stability improvements, bugfixes, and the like.

What is new in version 0.10:

  • This version adds configuration options to pass information to handler processes, and improves documentation.

What is new in version 0.9:

  • Accumulated minor fixes.

What is new in version 0.6:

  • Support for epoll was added to make htparser more scalable.
  • The error handling in dirplex has been made customizable and reusable.
  • There is a general slew of bugfixes and other improvements to go around.

What is new in version 0.5:

  • A number of bugfixes and the addition of directory-local matching to the dirplex handler.

Other Software of Developer Fredrik Tolf

Dolda Connect
Dolda Connect

2 Jun 15

Comments to Ashd

Comments not found
Add Comment
Turn on images!