- Tntnet
Tntnet is a free in
C++ codedWebserver , which enables other C++-programs to bundle requests modules. This way, users are enabled to developWeb application s in C++. The GET and POST requests are interpreted by the tntnet server and sent to the web application program, which will sent a reply back over the network.Because of the use of C++, modern programming techniques like
Object-oriented programming and polymorphism can be used natively. Unlike scripts, the webserver does not need to interpret the application's code at run time, but it is compiled in advance.Also, the web application program, being native, will be faster than scripts. This, of course, is also possible with programs like
cgid orfastcgi . Though, it takes some time to start the applications in these solutions, because of the nature of forks.Tntnet solves this by directly integrating the web application into the webserver. When working with a big webserver like
Apache HTTP Server , this would be possible using the module system. In fact, this was the original setup of tntnet. But soon, the developers reached a severe problem, namely that Apache is written inC (programming language) , thus it would be hard to let Apache communicate with tntnet, which is written in C++. The use of C++, to get the advantages of modern programming, are made practically impossible this way.In this situation,
Tommi Mäkitalo developed the tntnet framework. Tntnet is also a webserver, which is present in thesource code . This way, tntnet acts as a layer in front of the actual web application. When in use, the webserver part receives theHTTP request s, interpretes them and sends them to the (binary) web application part. The web application and the webserver are constantly talking to each other.Benchmarks have shown that tntnet, with its particular setup, is faster for dynamic websites than all other tested webservers. Tntnet was compared with a lot of Apache modules and
lighttpd . Only for statical websites, lighttpd performed better than tntnet, because it could directly call the "sendfile" kernel call. Tntnet doesn't have this option, so it might not be the perfect choice for purely statical websites, instead a system like lighttpd would be better.Extra libraries
Extra libraries provide more tools for the programmer.
Cxxtools
Tntnet uses a library of tools named Cxxtools. To build applications written using tntnet, Cxxtools is needed.
Tntdb
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:
*Postgres
* SQLite3
*MySQL
* OracleLicense
The tntnet software is available under the
GNU General Public License (version 2) license.Applications
* tntwiki
* tntzenoreader - a system for using the
* [http://live.vdr-developer.org/ live] Weboberfläche für VDR - a free software package for the recording of digital video (DVB )
* Several commercial websites and websites for projects
* Several example applications (in the /demos/ directory of the tntnet package)External links
* [http://www.tntnet.org/ Tntnet homepage]
* [http://www.tntnet.org/download/tntnet-1.6.0.1/sdk/demos/ Example applications]
* [http://radiotux.de/interviews/tntnet.mp3 Interview] with Tommi Mäkitalo at the 16th of November 2006 November 2006 byRadioTux (in German)
Wikimedia Foundation. 2010.