tg-me.com/nodejs_lib/337
Last Update:
Представьте себе полноценный PostgreSQL, работающий прямо в браузере или Node.js без необходимости поднимать отдельный сервер или встраивать Linux-образ. Проект PGlite реализует эту идею, предоставляя всего лишь 3 МБ (в сжатом виде) с поддержкой популярных расширений, таких как pgvector.
PGlite — это PostgreSQL, скомпилированный в WebAssembly и упакованный в простую TypeScript/JavaScript-библиотеку. Его ключевая особенность — отсутствие "линуксового" виртуального окружения, что обеспечивает минимальный размер и удобный API. Вы можете использовать PGlite как in-memory базу или включить постоянное хранение данных в IndexedDB (в браузере) или файловой системе (в Node.js/Bun/Deno).
Основные преимущества PGlite:
- Минимальный размер — около 3 МБ в сжатом виде.
- Удобный API — простое подключение библиотеки и вызов методов для работы с базой данных. Совместимость с популярными ORM, такими как Drizzle или TypeORM.
- Поддержка расширений — в комплект входят некоторые популярные плагины, например, pgvector.
Пример использования PGlite в браузере:
import { PGlite } from "@electric-sql/pglite";
const db = new PGlite();
const result = await db.query("SELECT 'Привет, мир!' AS message;");
console.log(result);
// -> { rows: [ { message: "Привет, мир!" } ] }
Для сохранения данных между перезагрузками в IndexedDB:
const db = new PGlite("idb://my-pgdata");
// Данные сохранятся в IndexedDB
В средах Node.js/Bun/Deno можно указать путь к файлу для постоянного хранения данных:
const db = new PGlite("./path/to/pgdata");
// Данные сохранятся в локальной файловой системе
PGlite подходит для быстрого тестирования и прототипирования, демонстрационных и учебных проектов, а также для "local-first" приложений, где данные хранятся локально и синхронизируются при подключении к внешней СУБД.
https://habr.com/ru/articles/873112/
✍️ @nodejs_lib
BY Node JS

Share with your friend now:
tg-me.com/nodejs_lib/337