25 lines
1.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
# tofufirme [![justforfunnoreally.dev badge](https://img.shields.io/badge/justforfunnoreally-dev-9ff)](https://justforfunnoreally.dev)
|
|
|
|
![un tofu firme](https://labodeguitadelovalledor.cl/wp-content/uploads/2020/10/img_como_hacer_tofu_casero_32813_600_square-480x480.jpg)
|
|
|
|
un _proof of concept_ de un coso que guarda un sitio estático en una BD de sqlite3 con los archivos comprimidos con brotli, y otro coso que sirve el coso.
|
|
|
|
## ¿por qué?
|
|
|
|
porque la mayoría de los navegadores soportan brotli, y quizás no tiene tanto sentido guardar la versión descomprimida y la versión comprimida en gzip cuando la mayoría de los pedidos solo van a pedir la versión de brotli.
|
|
|
|
entonces si solo guardamos en brotli, podemos servir eso y _descomprimir en vivo_ si lx usuarix no soporta brotli (que, creo que la descompresión es más rápida que la compresión).
|
|
|
|
## ¿funciona?
|
|
|
|
este PoC funciona. [un sitio](https://keywords.sutty.nl) pesado en texto/HTML pero liviano en otros recursos pesa 79MB vs. 352MB (incluyendo .gz y .br).
|
|
|
|
## a ver...
|
|
|
|
```sh
|
|
pnpm install
|
|
# el sitio tiene que estar en input/
|
|
node compress.js output.sqlite3
|
|
node server.js output.sqlite3
|
|
```
|