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, boost, and a C++ compiler like GCC, Clang or MSVC. See the minimum dependency versions for an explanation about which versions Wt supports.
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:
- FastCGI development kit: you need the C/C++ library (libfcgi++)
Generic instructions for Unix-like platforms or Windows platforms.
Bugs can be reported here http://redmine.webtoolkit.eu/projects/wt/issues/new
We value the security of our users and take all vulnerability reports seriously. By reporting security vulnerabilities, you help us ensure the continued security and reliability of Wt.
Please report vulnerabilities privately to the Wt security team. Public disclosure of a vulnerability before it has been addressed could put users at risk. Send your vulnerability report to wt-security@emweb.be. We will investigate each report.
We will publicly disclose the vulnerability in the change log when a patch or update has been released.
While we do not offer a formal bug bounty program, we appreciate the efforts of security researchers who help us improve the security of Wt. We will acknowledge and credit responsible disclosures in our release notes and security advisories, unless you prefer to remain anonymous.
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 sales@emweb.be for more information.
See doc/licenses.md
for an exhaustive list of the licenses
used by Wt, source code from external sources included in Wt
and common (optional) external dependencies.