This article needs additional citations for verification. (December 2017) (Learn how and when to remove this template message)
2.2.1 / 17 January 2014
|Operating system||Linux Unix|
Tntnet is Web server software, coded in C++, which enables other C++ programs to bundle requests modules. This enables developing Web applications in C++. The GET and POST requests are interpreted by the tntnet server and sent to the web application program, which will send a reply back over the network. Tntnet is free software released under the GNU Lesser General Public License (LGPL).
Tntnet provides many of the same features as script-based CGI, but with different tradeoffs. Being C++ based, tntnet allows the use of methods such as object-oriented programming and polymorphism, which are also supported in modern scripting languages.
Under tntnet, the web application is compiled ahead of time, while script-based CGIs are often interpreted. Compiled modules, being native, will generally be faster than scripts. Programs such as cgid or fastcgi can be used to improve the performance of script-based CGIs.
Tntnet directly integrates the web application into the webserver. Webservers often have APIs for doing this. Apache HTTP Server uses a module system, where Internet Information Services (IIS) uses Internet Server Application Programming Interface (ISAPI). Tntnet originally used Apache's module system, but this was changed due to the difficulty of interfacing with Apache through its C API while maintaining the benefits of using C++.
In this situation, Tommi Mäkitalo developed the tntnet framework. Tntnet is also a webserver, which is present in the source code. This way, tntnet acts as a layer in front of the actual web application. When in use, the webserver part receives the HTTP requests, interpretes them and sends them to the (binary) web application part. The web application and webserver communicate to each other constantly.
Extra libraries provide more tools for the programmer.
Tntnet uses a library of tools named Cxxtools. To build applications written using tntnet, Cxxtools is needed.
The library Tntdb is a database abstraction layer. The programs developed using Tntdb do not depend on a specific type of underlying database system. Tntdb can handle the following database systems:
- tntzenoreader - a system for using the Wikipedia-DVD
- live Weboberfläche für VDR - a free software package for the recording of digital video: Digital Video Broadcasting (DVB)
- Several example applications (in the /demos/ directory of the tntnet package)