Perfect Roadmap

Kyle Jessup edited this page Jul 6, 2016 · 9 revisions

Perfect Roadmap

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

  • Purpose:
    • Provide connectivity for ODBC and Oracle databases
  • Features:
    • Simplify/Swiftify the native ODBC and Oracle APIs

ORM

  • Purpose:
    • Provide database independent abstraction for persistent models
  • Features:
    • Class generator generates swift (and possibly javascript) classes/files based on database tables
    • 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

Documentation

  • Purpose:
    • Documentation
  • Features:
    • Documentation

Log Manager (better logging support, including syslog, was added 2016-07)

  • Purpose:
    • Provide robust logging framework for auditing or troubleshooting purposes
  • Features:
    • 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)

  • Purpose:
    • Provide connectivity for the NGINX web server.
  • Features:
    • FastCGI connectivity.

Swift Package Manager Support (support for this was added in 2016)

  • Purpose:
    • Streamline and simplify the build process
  • Features:
    • 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)

  • Purpose:
    • Provide support for the WebSockets protocol in Perfect Server
  • Features:
    • Can co-exist within Perfect Server FCGI or HTTP

URL Routing (support for this was added 2015-12-16)

  • Purpose:
    • Provide loose coupling of URL paths to handlers
  • Features:
    • 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)