Feature wishlist

This is the current community wishlist for features in the Wt library.

Feel free to suggest features you feel are lacking now, or comment on existing wishes. Wt developers will use this list to prioritize development (instead of simply working on their favourite thing), and also to indicate how particular features will be shaped.

Widgets

Add here widgets you would like to see implemented in Wt.

Detail what it should do, your wishes for the API if you have any, and perhaps pointers to an equivalent widget in other toolkits.

Database

  • Connection Pool
    An efficient and scalable connection pool implementation for sessions to communicate with the database ( mentioned in Wt::Dbo Tutorial ). The scalability is critical for the case of deployment into clusters or clouds.

Development Tools

  • GUI designer
    Could be similar to the Qt Designer. Or able to create classes from the same .ui files the designer is generating (reuse of existing tools).

Configuration

allow runtime configuration for widget tree structure and bindings

Integrated Features

  • Basic login system (users & roles) - Should allow for simple standard logins to be performed (used heavily for almost all web-apps)
  • JS & HTML Compression - Not sure if this is already done?
  • CSS Minimising - CSS can become highly messy with lots of overloading, identifying overloads and pruning unused elements will help with consistency & reduce bandwidth

Foreign language bindings

  • With python bindings it would be possible to use Wt as an intelligent page generator inside other web framework (Django, etc... ).
    It will also be possible to use python to achieve the prototypes and faster release applications.

This is also a recurring request on the mailing list. It would make a lot of sense to have a high quality set of bindings (including native documentation, full support for inheritance), which would result in a high-performance solution for creating web applications in scripting languages. Such a solution is likely to be high performance since most of the complexity lies in the rendering and not in the widget construction/manipulation and event handling. The rendering will still be native C++.

We are currently looking at how we can best tackle this so that we can keep the bindings in sync with the latest release of Wt... Any suggestions are welcome.
  • See SWIG
  • A wrapper for Qt, supporting Qt signals/slots and types, etc

Deployment

Load Balancer, Incremental Deployment

Because sessions are node-bound, a load balancer should be provided which keeps track of sessions bound to a specific node. This same load balancer could also be used to migrate new users to a new application instance, while keeping existing users on a previous applications instance, in this way facilitating incremental deployment of new application versions.

For Unix like systems there is already Pound!

Scalability, Cluster Computing

Perhaps at a future date it would be possible to implement support for cluster computing with wt. That would make load balancing easier, and it would especially address the issue of scalability.

Session Scalability

Ability to pass session to a database/server so that if system currently running the session dies the user can be re-directed to other machine (through load balancing/fallover) and new instance can reload users session and continue

Localization

PO-based localization

Built-in PO-based localization support for Wt could make work of translators so much easier, because there exist many tools for PO files (e.g. Pootle).

Wt developers opinion: we will probably not implement this soon, since the current approach with the XML files has the benefit (for web applications) of helping in supporting large chunks of XHTML-formatted text, and general purpose editor support for unicode (UTF8-encoded) text.

Community

3rd Party/Sandbox directory

Create a sandbox directory where 3rdParty / contributed code would be placed . Removes the headache of copyrighting

SoC

Ideas for Google SoC, 2009

Example Application

Quick Starter

Create a stand alone project where you can download a single tarball and begin working on wt. Ideally everything will be local to the project and there is zero install. By zero install, I mean no wt, boost, or cmake installs. Make it really easy. Everything should be simple and already configured. Something in the spirit of Instant Rails.

Also available in: HTML TXT