Wt, C++ Web Toolkit — Emweb
Develop web applications in C++
Wt is a web GUI library in modern C++.
Quickly develop highly interactive web UIs with widgets,<br>without having to write a single line of JavaScript.<br>Wt handles all request handling and page rendering<br>for you, so you can focus on functionality.
Discover how you can use Wt
Useful Links
Download Wt 4.14.0<br>Released on 15 July 2026
Reference Documentation<br>Doxygen documentation for Wt 4.14.0
Widget Gallery<br>Explore what widgets Wt has to offer
Why choose Wt?
You don't want to focus on details like request handling or page rendering.<br>You want your application to continue to work<br>even when JavaScript is unavailable.<br>You just want to write your web application in C++ without sacrificing interactivity.<br>Wt allows you to focus on functionality and create highly interactive, secure, and future proof applications<br>quickly.
Save Time
Wt handles all the nitty-gritty of requests and responses and<br>client-side JavaScript, and allows you to focus on functionality<br>in pure C++.
Built to Maintain
Wt's widget abstraction represents HTML elements as C++ objects, allowing<br>them to be easily composable and extendable.
Future Proof
Stay up to date with the latest web technologies without changing your code, thanks to Wt's stable API.
Secure
Wt is designed to be resilient against the most common types of exploits:<br>SQL injection, XSS and CSRF vulnerabilities.
Contact us for more information
or a personalised quotation
Contact Us
Features
Wt has a lot to offer. It includes the essential basic widgets and building blocks to<br>build web applications, but also offers built-in security, PDF rendering, a 2D and 3D painting system,<br>an object-relational mapping library, a charting library, and an authentication framework.
You can see the full list of features here, but here's a short overview:
Widget library
Many widgets are included in Wt. For every HTML element there's a corresponding widget. These widgets can emit signals when interacted with, so you can write web applications like desktop applications.
Check out the widget gallery for an overview of the widgets that Wt has to offer.
Server side, client optimized
Wt employs a signal-slot system. Instead of worrying about the sending of Ajax requests and serving of pages, you can simply connect the click of a button to a callback function on the server.
Take a look at this example in the widget gallery.
Wt will use whatever technology available for communication: Ajax or WebSockets, but will fall back on full HTML<br>page loads when JavaScript is unavailable. This makes Wt applications accessible to any browser or web crawler.
Built-in security
Wt automatically protects against misuse by only allowing visible and enabled widgets to be interacted with.<br>This also helps to avoid CSRF attacks, which are doubly avoided because Wt does not store session information in cookies.<br>By using the widget abstraction, Wt discourages the inserting of raw HTML into a web page, preventing XSS attacks.
Wt::Dbo prevents SQL injection by encouraging the use of prepared statements when accessing the database.
Wt also includes an authentication and registration system with support for OAuth<br>providers like Google, Facebook, and OpenID Connect.
PDF rendering
Create PDFs and render HTML as PDF with Wt's PDF rendering system.
Check out PDF rendering in the widget gallery.
2D and 3D painting system
Use a single 2D drawing API with many backends (PNG, JPEG, SVG, HTML canvas, VML, and PDF) so you only need to write<br>your drawing code once to support any web browser and save to many formats. Write server-side (OpenGL) and<br>client-side (WebGL) 3D graphics with a uniform API. Wt's 2D and 3D charting libraries were built on top of this<br>graphics API.
Check out the examples in the widget gallery.
Object relational mapping library
Map classes in C++ to tables in your database with Wt::Dbo, an ORM that only requires pure C++,<br>and does not rely on preprocessor magic or code generation.
Get a taste for Wt::Dbo with the introductory tutorial.
See all features
Latest News
(J)Wt 4.14.0
Posted by Romain
16 July 2026
(J)Wt 4.14.0 is out!
The main focus of this new version is the addition of the dark-mode for the Bootstrap 5 theme. It was already possible to use it, but several widgets used custom css and images that had no dark-mode versions.
Another big changes is the use of position-anchor. This allows a better placement for widgets in relation to one another, especially for popups.
Some changes were also done that reduce drastically the amount of JavaScript sent to add event listeners. This does reduce significantly the size of JavaScript payloads adding several event handlers.
This release also includes several other features, bug fixes, and improvements. Check the release notes for more detailed information.
Here are the links:
Wt 4.14.0 (C++): download wt-4.14.0.tar.gz (release notes)
JWt 4.14.0 (Java): download...