[http://naviserver.sourceforge.net/ns_logobig.gif] [NaviServer%|%Main%|%] ✸ http://bitbucket.org/naviserver/naviserver/%|%Source Code %|% ✸ http://sourceforge.net/project/showfiles.php?group_id=130646%|%Downloads %|% ✸ http://naviserver.sourceforge.net/n/toc.html%|%API Documentation %|% ✸ http://sourceforge.net/mail/?group_id=130646%|%Mailing Lists%|% ✸ http://sourceforge.net/tracker/?group_id=130646&atid=719006%|%Bugs %|% ✸ https://www.ohloh.net/p/naviserver/contributors%|%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 [http://naviserver.sourceforge.net/n/naviserver/files/ns_ictl.html] * Shares data between threads easily with protected variables and caches[http://naviserver.sourceforge.net/n/naviserver/files/ns_cache.html] * Pooled database connections[http://naviserver.sourceforge.net/n/nsdb/files/ns_db.html] ''(also: [nsdbi])'' * Dynamic Pages in TCL [http://naviserver.sourceforge.net/n/naviserver/files/ns_register_adp.html] (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[http://naviserver.sourceforge.net/n/naviserver/files/ns_config.html] * ''and much, much more..!'' Runs (and is tested regularly) on: [Linux], [Solaris], [MacOS X]. Also runs on [FreeBSD] and Windows[http://sourceforge.net/project/showfiles.php?group_id=130646&package_id=266633]. ---- '''Modules''' (documented ''so far'' on this wiki) * [nsdbi] database interface, and drivers: [nsdbipg], [nsdbimy], [nsdbilite]. * database drivers for the original nsdb interface: [nsdbpg], [nsdbtds], [nsdbmysql], [nsdbsqlite], [nsdbdbd] * protocol drivers to extend naviserver's capabilities beyond the web: [nsudp], [nsicmp], [nssnmp], [nsdns], [nssyslogd], [nsimap], [nsldapd], [nssnmtpd], [nsradiusd], [nsdhcpd] * service modules: [nsstats], [nsmemcache], [msauthpam], [nsaccess], [nsexpat], [nsgdchart], [nsssl], [nsphp], [nsvfs], [nszlib] * ''(complete list of [http://bitbucket.org/naviserver/%|%modules %|%], and here [http://naviserver.sourceforge.net/n/toc.html%|%modules with documentation %|%])'' ---- '''Configuration Examples''' * [Minimal Config%|%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''' * Porting to NaviServer: [NaviServer AOLserver Differences] * [NaviServer Command Mode] - for exploration and testing * [NaviServer Testing] - running tests and using the debugger * [Complete Config File] description * Running [PHP inside NaviServer] * [What you should be aware of when Running NaviServer] * [NaviServer Control Port] * [NaviServer inside Chroot Environment] * [NaviServer Running as Root] * [NaviServer Log Files] * Support for [.tcl-style dynamic pages] * Managing [TCL interpreter initialization] * Startup: [NaviServer rc-script Template] * You may want to compile your Tcl with the [vtmalloc] memory allocator * ... ---- '''Ancient History''' The code was originally [http://bitbucket.org/naviserver/naviserver/changeset/8e130eec8fbc/%|%(Feb 2005) %|%] forked from the [AOLserver] 4.10 branch, but has seen many independent [http://bitbucket.org/naviserver/naviserver/src/tip/NEWS%|%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?height=120&width=500&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 [https://www.ohloh.net/p/compare?metric=Activity&project_0=AOLserver&project_1=NaviServer%|%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''[http://www.amazon.com/High-Stakes-No-Prisoners-Internet/dp/0812931432], 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. <>Category NaviServer | Category Webserver | Category Internet | Category Application | Category Threads