We are currently pinned to Node.js 6.9.2 for most CDN installations, as lwip will not build on more recent versions of Node.js. For this reason, and to try to improve image processing performance, we have been investigating a number of image manipulation modules to find one that could replace the existing use of lwip in CDN.
We’ve decided to go with Sharp for the replacement. You can see from the performance test results on the Sharp website that it’s much faster than lwip and also many times faster than another of our other replacement options, dependency-free jimp: running a test using a Buffer as both input and output, Sharp averages 29.08 operations per second, while lwip manages just 1.87 operations per second. This shows Sharp to be around 15 times faster than lwip.
Other than improved performance, Sharp offers us a smoother transition into adding plugin support to CDN and being able to offer features such as dynamic text and image compositing.
The first version of CDN to ship with Sharp as the image processor will be available within the next month.
Version 3.0.0 was released three weeks ago, with support for multiple template engines. A DustJS engine is included by default but we also have engines for Pug.js (already being used in production!) and Handlebars.js. Writing a template engine for your favourite templating language is relatively easy - a sample engine is available on GitHub for those interested.
Version 3.0 - API Data Connectors
We’re taking our time with the API Version 3.0 release, as it has a number of breaking changes that need to be tested thoroughly and communicated to all existing users.
Along with decoupled data storage functionality via new DADI Api Data Connector modules, we’re tackling some of the issues we’ve wanted to get to for some time. The issues can be seen on the API Project board.
Last week API Version 2.2.1 was released to NPM. The major feature of this release is the ability to use custom errors. Some more details regarding custom errors in the pull request.