googleapis / googleapis/google-api-python-client

Compressing the discovery cache

Open
#2,321 8 comments 9 reactions 0 assignees View on GitHub
priority: p3 type: feature request
Dominant language
Python
Stars
8.9k
Forks
2.6k
Avg merge
2d 28m
Merged PRs (30d)
17

Description

#2315 shaved off a bit more than 20MB of the discovery cache, by removing the json indentation.
Currently there's still 74.6MB remaining, and it appears to be growing steadily over time (from 81MB on 2023-03-31 to 94MB on 2024-01-15).

So while #2315 definitely helped, I believe that it's a good idea to consider reducing the size even further. I believe that this could significantly improve build/deploy times of the many docker images that use this library. For reference, the current latest [`python-slim`](https://hub.docker.com/_/python/tags) docker image is less than 50MB.

An easy win would be to use compression.
To illustrate: if I manually zip the entire `documents` directory of 74.6MB in v2.114.0 using the pop-os default [gnome archive manager](https://gitlab.gnome.org/GNOME/file-roller), I end up with an archive of 11.9MB.
Creating a `documents.tar.xz` in the same way makes this 4.6MB.

It should be possible to achieve similar levels of compression by using Python's standard compression libraries, e.g. [`zlib`](https://docs.python.org/3/library/zlib.html), [`zipfile`](https://docs.python.org/3/library/zipfile.html), or [`lzma`](https://docs.python.org/3/library/lzma.html).

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.