Thursday 31st December, 2015

Download statistics

Alongside the release of DataTables 1.10.8 in August, a new download builder was introduced. The download builder provides options to easily build a package that suits your own needs - which extensions you want to include and what styling you want to use for the table. While this vastly simplifies the selection of what files you need to include on your page, it also potentially provides insight into how DataTables and its extensions are being used as this information is logged.

In a more light hearted post then normal, to close out the year (no code in this post!), we'll take a look at a summary of the data that has been gather so far.

Data set

The first, and possibly the most important point to note about the data set used, is that there are two options for how a package is built and delivered - CDN (served from cdn.datatables.net, which uses CloudFlare and a local package download (i.e. download the files onto your computer so you can serve them from your own machine). A CDN package is only ever recorded once! After the CDN package for a particular combination of software has been requested the package need never be created again (indeed it would be a performance issue if it were). The local download however is recorded each time. This means the result set is heavily biased towards local downloads, but I think it still gives an interesting overview of how DataTables is being used.

The data used was recorded from 20:49 12th August 2015 until 16:40 30th December 2015 (a little bit more than 1/3 of a year).

  • 79709 data points are available
    • 12470 of which were single unique CDN packages
    • 57239 were download packages (not necessarily unique).

Keep in mind also that DataTables is available on other CDNs such as cdnjs, package managers such as NPM and Bower and also as source on GitHub. As such the numbers given here don't really represent how widely DataTables is used (I'm not sure that can be known given the number of ways the software can be obtained!), but again, it is primarily to give an indication of how DataTables is being downloaded and in what configurations.

DataTables

As a download builder for DataTables, you'd generally expect DataTables to be included in every download, indeed the numbers show that 97% of the packages built include DataTables. The remainder are primarily individual packages.

The download builder has thus far been available over three releases of DataTables (1.10.8 - 1.10.10) and I was curious to know if the download builder might be used more frequently immediately after a release. The chart below shows a line chart of the number of local download packages per day over the data sets span:

Local downloads per day

The chart shows there is no notable increase in downloads after each release. In part this is because I don't particularly publicise each release very well (forum, RSS and Twitter only typically). An e-mail notification of new releases is something I will be looking into in 2016.

jQuery

The download builder provides the option of including jQuery in the package (DataTables is after all a jQuery plug-in). Slightly surprisingly only 38% of packages built include jQuery, although this could be explained by jQuery already being available on so many existing pages and apps.

  • jQuery 1.x: 15%
  • jQuery 2.x: 23%
  • jQuery not included: 62%

Styling

One of the main goals of the download builder was to make it easier to use the styling options for DataTables. There are currently four options available - DataTables, Bootstrap, jQuery UI and Foundation:

  • DataTables: 36% of packages
  • Bootstrap styling: 52% of packages
    • 46% of those included the Bootstrap core libraries as part of the package
    • 54% did not.
  • jQuery UI styling: 9%
    • 57% of those included the jQuery UI core libraries as part of the package
    • 43% did not.
  • Foundation styling: 3% of packages
    • 60% of those included the Foundation core libraries as part of the package
    • 40% did not.

Unsurprisingly Bootstrap is way out in front in terms of styling preference. Interestingly, the preference for inclusion of the styling library software is much lower for Bootstrap than for jQuery UI or Foundation - possibly because Bootstrap is already included in many frameworks.

Extensions

DataTables offers a range of extensions that extend its feature set and it is inserting to see how many downloads include extensions:

  • 84% of downloads included one or more extensions
  • 6.19 extensions were included on average (this includes the Buttons plug-ins and third party software).

That 6 extensions on average are included is surprisingly high, although that does reflect the fact that to get maximum utility from Buttons additional options such as the HTML5 button definitions and third party libraries need to be included.

By the numbers

The following is a break down of the number of packages that include each extension (each package can contain multiple extensions):

  • 61% - Responsive
  • 54% - Buttons
  • 41% - FixedHeader
  • 40% - Select
  • 38% - Scroller
  • 34% - ColReorder
  • 31% - FixedColumns
  • 27% - AutoFill
  • 26% - RowReorder
  • 25% - KeyTable
  • 3% - Editor

The use of the extensions is more or less in the order I would have expected, although I'm surprised that Scroller and ColReorder are as high in the list as they are. It also looks like there is work to be done in order to promote Editor!

Bandwidth

To highlight that the above information is primarily based on the download package options that are selected, it is interesting to look at the request and bandwidth statistics that are provided by CloudFlare (this included the DataTables CDN as well as the main site):

The following are for December 2015:

  • Requests: 593'500'000
    • 93% of these were answered with a cached response from CloudFlare
  • 6TB of data was transferred
  • There were 51'700'000 unique visitors

Bandwidth

The nature of the DataTables.net site really lends itself to a service such as CloudFlare, and thank goodness this service is available to us - that is a staggering amount of bandwidth!

Conclusions

The numbers given in this post need to be used with caution - they show how DataTables is being downloaded, but not much else. There is no way to know how many instances of DataTables are being used on private networks or how it is being redistributed as part of themes and other development packages, nor does it show what features are being utilised in DataTables. However, it does give an interesting snapshot into how people are starting their journey with DataTables.

All the best to everyone for 2016!