Python: codifica compacta e reversivelmente um número inteiro grande como base64 ou base16 com comprimento variável ou fixo

Eu quero codificar compactamente um grande número inteiro não assinado ou assinado com um número arbitrário de bits em uma representação base64, base32 ou base16 (hexadecimal). A saída será finalmente usada como uma string que será usada como um nome de arquivo, mas isso deve ficar fora de questão. Estou usando o último Python 3.

Isso funciona, mas está longe de ser compacto:

>>> import base64, sys
>>> i: int = 2**62 - 3  # Can be signed or unsigned.
>>> b64: bytes =  base64.b64encode(str(i).encode()) # Not a compact encoding.
>>> len(b64), sys.getsizeof(b64)
(28, 61)

Existe umprior question, agora encerrado, cujas respostas se referem estritamente a representações ineficientes. Observe novamente que não queremos usar seqüências de caracteres ou sequências desnecessárias de bytes neste exercício. Como tal, esta pergunta não é uma duplicata dessa pergunt

questionAnswers(1)

yourAnswerToTheQuestion