Clone this wiki locally
The roadmap outlines the areas where we intend to invest our development efforts. This is a malleable list and we will be adding, removing or altering these items as priorities change.
Items here are not currently listed in any particular order.
Additional Database Support
- Provide connectivity for ODBC and Oracle databases
- Simplify/Swiftify the native ODBC and Oracle APIs
- Provide database independent abstraction for persistent models
- Model classes are generic with server and client extensions
- Database drivers provide CRUD for specific databases based on generated classes
- Client-side drivers use JSON based object serialization based on generated classes
- JSON endpoints receive client-side CRUD requests, validate, provide authentication & security
Log Manager (better logging support, including syslog, was added 2016-07)
- Provide robust logging framework for auditing or troubleshooting purposes
- Producer, consumer abstracted model lets output be redirected (for example, could direct to syslog)
NGINX Connector (FastCGI connector has been tested and works with with NGINX)
- Provide connectivity for the NGINX web server.
- FastCGI connectivity.
Swift Package Manager Support (support for this was added in 2016)
- Streamline and simplify the build process
- Note that currently SPM does not support dynamic libraries, instead building everything as a monolithic executable. Perfect relies on dynamic libraries and so we await this support.
WebSockets (support for this was added 2016-01-07)
- Provide support for the WebSockets protocol in Perfect Server
- Can co-exist within Perfect Server FCGI or HTTP
URL Routing (support for this was added 2015-12-16)
- Provide loose coupling of URL paths to handlers
- Hierarchical URL routing to specific Swift classes
- Support for virtual files
- Template specifiers (not complete)
- Optional; server can operate without using this system
- Supports binding variables in paths
- Supports URL variable validation during routing process (not complete)
- Output caching; time based (not complete)