Skip to content
Switch branches/tags

Latest commit

Doing it this way ensures that GCC understands that the delete this in
decref() is never actually called for end_link.

Instead of incrementing the reference count of end_link so that it
doesn't get deleted in unlink(), we instead add a bool parameter to
unlink that determines whether the unlink should cause a decref(). By
default it always does so, but end_link, being stack-allocated, is a
special case.

unlink is probably inlined by the compiler, so this extra if may
actually marginally improve performance?

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
May 12, 2020

What is Wt ?

Wt is a C++ library for developing web applications. It consists of:

  • libwt, a widget/rendering library
  • libwthttp, an (async I/O) HTTP/WebSockets server
  • libwtfcgi, a FastCGI connector library (Unix)
  • libwtisapi, an ISAPI connector library (Windows)
  • libwttest, a test connector environment

It also contains a C++ ORM, which can be used in a web application (obviously), but can also be used on its own:

  • libwtdbo, a C++ ORM
  • libwtdbopostgres, PostgreSQL backend
  • libwtdbosqlite3, Sqlite3 backend
  • libwtdbomysql, MySQL and MariaDB backend
  • libwtdbomssqlserver, Microsoft SQL Server backend
  • libwtdbofirebird, Firebird backend

For more information, see the homepage.


To build Wt from source you will need at least CMake (>= 3.1), and boost (version >= 1.50).

Optionally, you may want to add:

  • OpenSSL for SSL and WebSockets support in the built-in httpd, the HTTP(S) client, and additional cryptographic hashes in the authentication module
  • Haru PDF library which is used for painting to PDF
  • GraphicsMagick which is used for painting to PNG, GIF (on Windows, Direct2D can be used instead)
  • PostgreSQL for the PostgreSQL Dbo backend
  • MySQL or MariaDB for the MySQL Dbo backend
  • An ODBC driver for the Microsoft SQL Server Dbo backend, and unixODBC on Unix-like platforms
  • Firebird for the Firebird Dbo backend
  • Pango for improved font support in PDF and raster image painting. On Windows, DirectWrite can be used instead.
  • ZLib for compression in the built-in httpd.

For the FastCGI connector, you also need:


Generic instructions for Unix-like platforms or Windows platforms.

Bug Reporting

Bugs can be reported here

Demos, examples

The homepage, itself a Wt application, contains also various examples.


Wt is available under two licenses:

  • the GNU General Public License, Version 2, with OpenSSL exception. Only version 2 of the GPL applies. See the LICENSE file for more information.
  • a commercial license, which does not require you to distribute the source code of your application. Request a quotation online or contact for more information.

See doc/ for an exhaustive list of the licenses used by Wt, source code from external sources included in Wt and common (optional) external dependencies.