Tntnet

Last updated

Tntnet
Stable release
3.0 [1]   OOjs UI icon edit-ltr-progressive.svg / 7 May 2020;23 months ago (7 May 2020)
Repository
Written in C++
Operating system Linux, Unix
Type Web server
License LGPL
Website www.tntnet.org

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). [2]

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, interprets them and sends them to the (binary) web application part. The web application and webserver communicate to each other constantly.

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:

Applications

Related Research Articles

Cygwin Unix subsystem for Windows machines

Cygwin is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed.

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program, typically to process user requests.

ScriptBasic is a scripting language variant of BASIC. The source of the interpreter is available as a C program under the LGPL license.

mod_perl is an optional module for the Apache HTTP server. It embeds a Perl interpreter into the Apache server. In addition to allowing Apache modules to be written in the Perl programming language, it allows the Apache web server to be dynamically configured by Perl programs. However, its most common use is so that dynamic content produced by Perl scripts can be served in response to incoming requests, without the significant overhead of re-launching the Perl interpreter for each request.

The Web Server Gateway Interface is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333.

A GIS software program is a computer program to support the use of a geographic information system, providing the ability to create, store, manage, query, analyze, and visualize geographic data, that is, data representing phenomena for which location is important. The GIS software industry encompasses a broad range of commercial and open-source products that provide some or all of these capabilities within various information technology architectures.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

LAMP (software bundle) Acronym for a common web hosting solution

LAMP is an acronym denoting one of the most common software stacks for many of the web's most popular applications. However, LAMP now refers to a generic software stack model and its components are largely interchangeable.

Catalyst (software)

Catalyst is an open source web application framework written in Perl, that closely follows the model–view–controller (MVC) architecture, and supports a number of experimental web patterns. It is written using Moose, a modern object system for Perl. Its design is heavily inspired by such frameworks as Ruby on Rails, Maypole, and Spring.

The acronyms BAPP and BAMP refer to a set of open-source software programs commonly used together to run dynamic web sites or servers. This set is a solution stack, and an open source web platform.

SAP NetWeaver Application Server or SAP Web Application Server is a component of SAP NetWeaver which works as a web application server for SAP products. All ABAP application servers including the message server represent the application layer of the multitier architecture of an ABAP-based SAP system. These application servers execute ABAP applications and communicate with the presentation components, the database, and also with each other, using the message server.

Python Paste, often simply called paste, is a set of utilities for web development in Python. Paste has been described as "a framework for web frameworks".

Epesi

Epesi is an open-source, PHP/Ajax framework for rapid development of web-based, database-driven applications. The framework includes the Epesi CRM multiuser application. It requires PHP 5.x and MySQL or PostgreSQL database server on the server-side and can be accessed using any modern browser. Epesi framework and Epesi CRM application are released under MIT license.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI programs, allowing a server to handle more web page requests per unit of time.

The following outline is provided as an overview of and topical guide to the Perl programming language:

Wakanda is a JavaScript platform to develop and run web or mobile apps.

References

  1. "Release 3.0". 7 May 2020. Retrieved 17 June 2020.
  2. "Tntnet homepage".