piwheels stats 2021Q4

Posted by Ben Nuttall

In the period of October – December 2021, 11,942,250 packages were downloaded from piwheels, bringing the total to 67,608,247. This has saved 43 years in the period, and 601 years in total! There were 58,871,182 pip searches, 886,179 project page hits, 420,490 web page hits and 294,252 project JSON downloads in the period.

In the previous quarter, only 7 days surpassed 100k downloads. In this period, most days did. 5 days surpassed 200k, 3 surpassed 250k, and one surpassed 300k.

Downloads saved around between 13 and 17 years per month:

The top 10 downloads were:

  1. requests (230,601)
  2. setuptools (214,607)
  3. charset-normalizer (187,981)
  4. pyyaml (187,863)
  5. websocket-client (180,099)
  6. octoprint-firmwarecheck (151,629)
  7. jinja2 (150,724)
  8. wheel (139,357)
  9. numpy (135,584)
  10. pigpio-dht (134,810)

The top 10 pip searches were:

  1. pip (4,755,985)
  2. wheel (3,410,977)
  3. setuptools (1,717,821)
  4. future (946,503)
  5. pyngrok (835,140)
  6. youtube-dl (678,269)
  7. requests (631,481)
  8. six (527,637)
  9. pyyaml (525,629)
  10. urllib3 (512,396)

The top 10 project page hits were:

  1. opencv-python (2,354)
  2. opencv-contrib-python (1,876)
  3. numpy (1,217)
  4. tensorflow (729)
  5. scipy (662)
  6. cryptography (616)
  7. pandas (516)
  8. pillow (438)
  9. grpcio (399)
  10. pyyaml (362)

The top 10 project JSON downloads were:

  1. awscrt (21,132)
  2. numpy (157)
  3. opencv-contrib-python (131)
  4. pyzmq (113)
  5. opencv-python (101)
  6. protobuf (88)
  7. scipy (77)
  8. obs-streamdeck-controls (72)
  9. pname (69)
  10. keras-models (66)

See the JSON API page for more information on using this API.

Platforms

Linux makes up over 99.9% of all searches so I’ve discounted the rest. Raspberry Pi OS and Debian are now combined (due to Raspberry Pi OS identifying itself as Debian). This group obviously dominates with over 98%. Ubuntu remains in third place with only 0.7%, although we don’t officially support it.

The latest OS release, Bullseye, has taken a sizeable chunk of the share (25%), but it’s far from taking over Buster (68%), due to compatibility issues with e.g. picamera. Stretch has dropped to under 7% and there’s practically no Jessie usage.

armv7l (Pi 2/3/4 – and now Zero 2) is still a majority architecture with 95% of searches from Arm devices (89% of which is from armv7l). Last quarter we saw more hits from aarch64 users than x86_64 and armv6l combined, but this spike has diminished, although aarch64 still (just) beats armv6l, with 4.6% to 3.5%:

Python 3 has an overwhelming majority of usage (88%), and 3.7 (the version provided by Buster) has the highest share with 54%. Bullseye’s Python 3.9 now comes second with 24% and Python 2.7 comes third with 15%:

We’re also logging pip and setuptools versions:

We see over 5TB of bandwidth each month, peaking at 5.54TB in November. The breakdown of bandwidth in the period is 79% pip downloads, 2.5% pip searches, a tiny amount (0.09%) of website traffic (project pages, JSON, etc) and the rest (surprisingly high, 17.5%) comprising mostly of direct wheel downloads not from pip (e.g. browsers):

And broken down by month:

Check out the source of this post in a Jupyter notebook: github.com/piwheels/stats/blob/master/2021q4.ipynb

Tags: stats