Go to file
Cat /dev/Nulo 1f60324e83 rust: no alocar por archivos que no se van a comprimir 2023-04-24 20:10:54 -03:00
rust rust: no alocar por archivos que no se van a comprimir 2023-04-24 20:10:54 -03:00
.gitignore RUST 🚀🚀🚀🚀🚀🚀 2023-04-23 21:12:29 -03:00
compress.js boludeces 2023-04-23 21:11:25 -03:00
package.json ahora usamos node:zlib 2023-04-20 16:42:33 -03:00
pnpm-lock.yaml ahora usamos node:zlib 2023-04-20 16:42:33 -03:00
readme.md vamaaa 2023-04-20 12:58:13 -03:00
server.js vamaaa 2023-04-20 12:58:13 -03:00
tsconfig.json vamaaa 2023-04-20 12:58:13 -03:00

readme.md

tofufirme justforfunnoreally.dev badge

un tofu firme

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 pesado en texto/HTML pero liviano en otros recursos pesa 79MB vs. 352MB (incluyendo .gz y .br).

a ver...

pnpm install
# el sitio tiene que estar en input/
node compress.js output.sqlite3
node server.js output.sqlite3