piwheels stats for 2020
Posted by Ben NuttallIn 2020, a total of 16,184,523 packages were downloaded, taking the total to 30,815,907. This saved 269 years 3 months during 2020, taking us to over 441 years saved overall. 52TB of files were downloaded, taking the total to 103TB.
- Average daily downloads:
- 2019: 25,257
- 2020: 44,220
- Average monthly downloads:
- 2019: 768,235
- 2020: 1,326,600
- Most downloads in one day:
- 2019: 39,153 on 4 December
- 2020: 105,826 on 15 December
- Most downloads in one month:
- 2019: 1,017,563 in December (32,824 daily average) / 1,014,577 in November (33,819 daily average)
- 2020: 1,850,781 in October (59,702 daily average)
- Bandwidth used from downloads:
- 2019: 37TB
- 2020: 52TB
Apart from February (short month, slightly under), each month had over 1 million downloads. Four of the last five months had over 1.5 million.
15 December 2020 was the biggest day on record, with 105,826 downloads.
The month of October recorded the most downloads at 1,850,781.
Top 30 packages
Incredibly, numpy was downloaded over a million times this year!
- numpy (1,004,056)
- dogpile-cache (389,999)
- webrtcvad-wheels (356,793)
- pyyaml (351,503)
- sentry-sdk (350,834)
- semantic-version (314,402)
- cffi (301,478)
- markdown (284,277)
- flask-login (266,479)
- pycparser (259,366)
- requests (210,274)
- markupsafe (206,343)
- cryptography (198,981)
- paho-mqtt (198,747)
- octoprint-firmwarecheck (184,992)
- filetype (181,539)
- opencv-python (179,079)
- pyusb (170,359)
- zope-component (165,536)
- adafruit-pureio (162,949)
- docopt (161,961)
- pillow (160,590)
- rpi-gpio (150,513)
- pynacl (148,723)
- future (145,075)
- adafruit-platformdetect (143,978)
- tornado (141,605)
- adafruit-blinka (140,604)
- bcrypt (138,836)
- sysv-ipc (136,934)
Python version usage
Most searches are from Python 3.7, the default in Debian Buster (55%). Second is Python 2.7 with 31%, followed by 3.5 (the default in Stretch) with 7.5%:
Architectures
armv7l (Pi 2/3/4 platform) is still a majority architecture with 91% of searches from Arm devices, with armv6l (Pi 1/Zero) taking under 5%:
Raspberry Pi released a beta of a 64-bit version of the official OS earlier in the year, and that’s starting to grow in usage. It’s currently up to 4.2%, and those users are currently not served by piwheels as we don’t build aarch64 platform wheels.
Operating systems
The vast majority of downloads are from Raspbian / Pi OS (over 98%). Of these, 76% are Buster, 24% are Stretch and practically none are Jessie:
Downloads through the day
Our busiest hour has moved earlier in the day, now between 3pm-4pm. All afternoon/evening UTC we are at our busiest:
2020 features
We have been working on a lot of new features throughout the year, including deletion and yanking, canonicalising package names, Requires-Python support, new project page layout and a new JSON API. I’ve also produced quarterly stats: 2020Q1, 2020Q2, 2020Q3 and 2020Q4.
2021 vision
There’s a new Debian release scheduled this summer, so we will be introducing a new Python version when Debian Bullseye arrives in the summer. We’ll also aim to start work on aarch64 support.
If you’re interested in following piwheels project updates, we tweet daily and monthly stats at @piwheels. You can also follow me @ben_nuttall and Dave @waveform80.
The piwheels project wouldn’t be possible without considerable support from Mythic Beasts, who provide storage, bandwidth and cloud Pis. The Pi platform is so straightforward, it’s been a pleasure to use, allowing us to scale up builder Pis with ease. We highly recommend using this (very affordable) service for real Pi testing for your projects.
I’ve also been working on a Python library and command line interface to the Mythic Beasts Pi Cloud service, called hostedpi, which is out in beta now and will be fully released soon. You can find it on GitHub, readthedocs, PyPI and (of course) piwheels.