Version 98 of NaviServer

Updated 2014-08-21 14:52:44 by achisholm

http://naviserver.sourceforge.net/ns_logobig.gif

MainSource Code Downloads API Documentation Mailing Lists Bugs Developers


NaviServer is a programmable web server written in C and Tcl. It offers many features for building custom web sites. The implementation is high performance, but the interface is easy to use, at both the C and Tcl level.

http://www.ohloh.net/p/naviserver/analyses/latest/commits_spark.png

Features include:

  • Hybrid multi-threaded / async architecture for easy programmer interface and high performance
  • Threads isolated from each other with own Tcl interpreters [L1 ]
  • Shares data between threads easily with protected variables and caches[L2 ]
  • Pooled database connections[L3 ] (also: nsdbi)
  • Dynamic Pages in TCL [L4 ] (PHP- and ASP-like syntax)
  • Built-in cron-like scheduling
  • Watchdog for restarting server
  • Efficient handling for large up- and downloads (spooling and writer threads)
  • Optional non-blocking log file writing (to avoid file system latencies, since 4.99.4)
  • Fully async drivers for HTTP and SSL (based on poll(), supporting several 1000 file descriptors, since 4.99.4)
  • Gzipped delivery of dynamic and static content (since 4.99.5)
  • Tcl configuration file[L5 ]
  • and much, much more..!

Runs (and is tested regularly) on: Linux, Solaris, MacOS X. Also runs on FreeBSD and Windows[L6 ].


Modules (documented so far on this wiki)


Configuration Examples

  • Minimal Configuration - the bare minimum
  • Virtual Hosts - listen on the same IP and port for several hostnames
  • CGI Configuration
    • [A simple tcl CGI script example
    • A Tcl CGI script with GET parameters example
    • A simple shell script example
  • ADP Configuration
    • A simple Tcl script example of Adp
    • A simple Tcl script example of Adp with GET parameters
  • Tcl Library Configuration
    • A simple tcl script using Tcl Library
  • AOL Database Configuration with PostgreSQL
    • An example script(.adp) of database connection
    • An example script(.adp) of database connection using ns_db 1row
    • An example script(.adp) of database connection using ns_db 0or1row
    • An example script(.adp) of database connection using ns_db dml

HowTo


Ancient History

The code was originally (Feb 2005) forked from the AOLserver 4.10 branch, but has seen many independent changes since then, and many back-ports of subsequent AOLserver 4.5 features. The current state of the code:

https://www.ohloh.net/p/naviserver/analyses/434088/codehistory?&&type=img.png

The two large spikes are imports of the entire Tcl codebase, from back in the day when AOLserver needed to patch it for thread safety. Here is the commit activity (green), compared to AOLserver (red):

https://www.ohloh.net/p/compare_chart?metric=Activity&project_0=AOLserver&project_1=NaviServer&tclwiki=img.png

Interestingly, AOLserver was originally called Naviserver before AOL bought the startup NaviSoft. NaviSoft is mentioned in Charles Ferguson's book High Stakes, No Prisoners: A Winner's Tale of Greed and Glory in the Internet Wars[L7 ], the story of his company Vermeer which developed FrontPage and he sold to Microsoft.


Comments

RLH - According to the downloads page...not updated since February 2006?

Old SF download system is not used because of constant development efforts, everybody is encourages to use repository. Recently the latest version is put into SF download area.

gavino 21oct2011

More here http://www.crystalballinc.com/vlad/software/naviserver/


ARR 2013-07-30 Is there anybody using NaviServer on Windows who managed ns_proxy to work? Nice to hear from you.