HomeO mnie

node:sqlite już niedługo!

By Robert Duraj
Published in Node.js
July 10, 2024
1 min read
node:sqlite już niedługo!

A gdyby tak Node.js miał “własną” bazę danych?

I nie mówię tutaj o dokumentowych bazach danych opartych na JSON ani o bazach danych napisanych w Node.js, dostarczanych przez zewnętrznych developerów. Mówię o module bazy danych. Takim core’owym.

Niedawno pisałem o natywnych modułach wbudowanych w core Node.js (https://rduraj.dev/o-pewnym-dwukropku-i-milionowych-pobraniach-biblioteki-ktora-nie-istnieje./). Okazuje się, że są przymiarki do tego, by jednym z takich modułów był node:sqlite – prosta baza klucz-wartość, która może wyjść naprzeciw oczekiwaniom wielu developerów, bazująca na popularnym silniku SQLite. Samo korzystanie z tego silnika nie jest niczym nowym w Node.js. Bibliotek oferujących takie rozwiązania znajdziemy co najmniej kilka w npm. Co może nam dać umieszczenie jej w core?

Deno, projekt, który wyrastał z ekosystemu Node.js, takie rozwiązanie u siebie wprowadził. Przygotował natywny, dostosowany do swojego interpretera wrapper na bazę SQLite, dodatkowo kompilując silnik SQLite3 za pomocą WASM.

Czy tak samo jest i w przypadku Node.js? Wygląda na to, że nie było takiej potrzeby. Tym razem wrapper komunikuje się bezpośrednio z SQLite, udostępniając niezbędne, dosyć skromne API do Node.js. Niskopoziomowe podejście sugeruje wysoki performance, a opieka core teamu raczej będzie powodowała, że stabilność pozostanie priorytetem. Przede wszystkim jednak cieszy horyzontalny rozwój biblioteki natywnej, która obejmuje coraz więcej użytecznych obszarów out of the box.

Jeśli mowa o stabilności - trzeba pamiętać, że jest to wciąż 1.1 - Active development i co najwyżej przyda się w domowych projektach. Jeszcze przez jakiś czas będziemy musieli na produkcji korzystać z dodatkowych bibliotek do SQLite, bardziej doświadczonych w boju. 😉

Wielu full-stack developerów szukało ekwiwalentu localStorage po stronie serwerowej – miejsca do składowania najprostszych informacji klucz-wartość. Teraz nie muszą daleko szukać. Korzystając z flagi --experimental-sqlite, otrzymają dostęp do bazy wbudowanej w core Node.js. Oficjalny release zawierający to rozwiązanie powinien pojawić się już wkrótce! (bo z wersjami Node to bywa dziwnie: https://rduraj.dev/wersjonowanie-node.js/).

PR zawierający nowy moduł możecie znaleźć tutaj: https://github.com/nodejs/node/pull/53752

Zdjęcie: Maarten van den Heuvel z Unsplash


Tags

#nodejs#javascript

Share

Previous Article
🗞 ☕ Prasówka #5 - O ludziach w jednym pokoju.

Robert Duraj

Software Engineer

Related Posts

Node.js... A na co to komu?!
July 24, 2024
1 min
© 2024, All Rights Reserved.
Powered By

Social Media

linkedingithubtwitter