2 puntos por GN⁺ 2024-10-16 | 1 comentarios | Compartir por WhatsApp
  • Permite usar sqlite3 en navegadores modernos con soporte para WASM
  • La beta pública inicial comenzó en la versión 3.40, y se planea estabilizar la API en la versión 3.41 según los comentarios de la comunidad

Casos de uso reales

  • Ya se usa en varios proyectos como SQLime, Evolu y SQLiteNext
  • Entre los proyectos relacionados están sql.js de Alon Zakai, wa-sqlite de Roy Hashimoto y absurd-js de James Long

Resumen de GN⁺

  • sqlite3 WASM y la API de JavaScript son un proyecto importante que permite usar bases de datos sqlite3 en navegadores web
  • Ofrece varias recetas de código cliente y cambios en la API, brindando información útil para desarrolladores
  • La comparación con proyectos relacionados ayuda a entender la originalidad y utilidad de este proyecto
  • Como proyectos con funciones similares, se recomiendan sql.js y wa-sqlite

1 comentarios

 
GN⁺ 2024-10-16
Opiniones en Hacker News
  • Es interesante la idea de ejecutar SQLite en la memoria dentro del navegador y usar trucos de Litestream y Cloudflare Durable Objects para transmitir el registro WAL al servidor

    • Se puede reconstruir la base de datos del lado del cliente usando los datos del lado del servidor
    • El modo WAL está excluido de la compilación WASM predeterminada de SQLite, por lo que se necesita una personalización
  • La versión reciente de SQLite es la 3.46.1, pero la página no se ha actualizado, lo que genera confusión sobre la estabilidad de la API

    • Estaría bien que el equipo de SQLite ofreciera un paquete oficial de npm que incluyera la versión WASM
  • Personalmente se prefiere la versión SQLite-in-WASM de Pyodide

    • Pyodide ofrece SQLite WASM gratis como parte de la biblioteca estándar de Python
    • Actualmente la versión de SQLite en Pyodide es la 3.39.0 y necesita actualizarse
  • Usar SQLite en un entorno local-first se siente pesado

    • Es más eficiente usar las APIs de almacenamiento nativas del navegador, especialmente IndexedDB
    • Hace falta una solución open source que ofrezca una API similar a SQLite
  • En Golang, el paquete wasm SQLite de ncruces es bueno

    • Funciona bien en entornos como OpenBSD
  • Se intentó usar SQLite en el ecosistema de Rust, pero actualmente faltan wrappers con soporte adecuado

    • Es difícil hacer compatible el código wasm de emscripten con wasm32-unknown-unknown
  • Hay curiosidad sobre si SQLite puede convertirse en un reemplazo de IndexedDB

    • Hay preguntas sobre si los datos persisten y si deben guardarse en la API de sistema de archivos o en IndexedDB/local storage
  • El tamaño mínimo de dependencias de SQLite WASM es de aproximadamente 1.3 MB

    • Es un tamaño algo grande para apps dentro del navegador, pero puede ser adecuado en otros entornos
  • Existe la opinión de que, si WebSQL hubiera sido SQLite, el ecosistema de almacenamiento para apps en general y offline-first habría sido mejor

    • Sería bueno especificar que el navegador soporte la API de SQLite
  • Se creó una biblioteca de SQLite para ejecución pura en JVM usando SQLite compilado en WASM y el runtime Chicory

    • Como proyecto experimental, podría ofrecer herramientas de SQLite sin dependencias para el ecosistema JVM
  • Hay planes de incluir SQLite en exaequOS.com