http://michael.cleverly.com/nstcl/
nstcl is a Tcl package which reimplements many of the useful APIs and commands from AOLserver and OpenACS, making them available for use in Tcl/Tk applications & scripts.
nstcl is grouped into a set of subpackages, including:
Most notable of these is the nstcl-database package, and the "ns_db" API, which provides a common interface to various different database extensions.
As of version 1.0 nstcl now supports the following databases:
Extending nstcl to support a new database extension involves writing a half dozen or so(mostly trivial) procs.
nstcl makes use of string subcommands, such as string map that first appeared in Tcl 8.2. As a result, use with a modern Tcl (8.3.4+) is preferred. However, for those stuck with an older version of Tcl, a set of so-called "forward compatability" procs are provided that enable nstcl to function on Tcl 8.0+.
Database access requires a supported database extension. Certain features of nstcl make use of packages from tcllib. See the README [L1 ] for details.
nstcl is distributed under the terms of the MIT/X11 license (essentially the equivalent of the original BSD license without the advertising clause) [L2 ].
AK -- I took a cursory look at the documentation and did not see any obvious place explaining which six procedures to implement for a new database. On the Tcl Chatroom we already had the question how to connect nstcl and Metakit.
MC -- See the "Implementing a New Driver" section of the man page for load_driver. [L3 ] The functions are:
Then the six functions that actually interact with the database:
My general advice would be for people to take a look at the nstcl-database-*.tcl file(s) for the database extension(s) that they're already familliar with. Of course, I'd be happy to write more specific docs too, if that would help.