Repository navigation
Releases: nascent-tech/memless
Release list
v0.4.1
What's Changed
- docs(contributing): say the pull request title becomes the commit on main by @houssenedao in #56
- chore: keep the internal design records out of the public repository by @houssenedao in #57
- docs: rewrite the READMEs for people who want to use memless by @houssenedao in #58
- chore(release): 0.4.1 by @houssenedao in #59
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- docs(palier-6): ship one npm package that bundles the four libraries by @houssenedao in #49
- feat(node): bundle the four libraries in the npm package by @houssenedao in #50
- fix(bridges): tell the libc the same way in the three bridges by @houssenedao in #51
- docs: open the project to external contributions by @houssenedao in #52
- docs(palier-6): mirror the Node bridge and take contributions on the main repository by @houssenedao in #53
- feat(release): mirror the Node bridge in nascent-tech/memless-node by @houssenedao in #54
- chore(release): 0.4.0 by @houssenedao in #55
Full Changelog: v0.3.0...v0.4.0
0.3.0
Le module Go a son propre dépôt : il s'installe par un chemin court, et le dépôt principal ne transporte plus aucun binaire.
Rupture — utilisateurs Go
- Le module s'appelle désormais
github.com/nascent-tech/memless-go:
go get github.com/nascent-tech/memless-go@v0.3.0, puis remplacer l'importgithub.com/nascent-tech/memless/bindings/gopargithub.com/nascent-tech/memless-go(le nom de paquet,memless, ne change pas). - Les versions 0.2.0 et 0.2.1 restent installables à l'ancien chemin.
Installer
- Go :
go get github.com/nascent-tech/memless-go@v0.3.0 - Node.js :
npm install @nascent-tech/memless - PHP :
composer require nascent-tech/memless
Les trois paquets embarquent la bibliothèque native pour macOS (Apple silicon, Intel) et Linux glibc 2.39+ (x86_64, aarch64) : rien à télécharger, pas de MEMLESS_LIB à poser. musl et Windows ne sont pas couverts.
Rien d'autre ne change
Moteur, SQL, messages d'erreur et fichier réécrit sont identiques à 0.2.1 dans les trois langages.
0.2.1
Version corrective de 0.2.0.
Correctif
- L'archive PHP de la release (
memless-php-0.2.1.zip) contient désormais les quatre bibliothèques (macOS arm64/x64, Linux glibc x64/arm64), l'en-tête C etSHA256SUMS: dézippée et déclarée comme dépôt Composerpath, elle fonctionne sansMEMLESS_LIB. L'archive 0.2.0 ne les contenait pas.
Installer
- Go :
go get github.com/nascent-tech/memless/bindings/go@v0.2.1— bibliothèque embarquée. - PHP :
composer require nascent-tech/memlessdès l'enregistrement du miroir sur Packagist ; d'ici là, l'archivememless-php-0.2.1.zipde cette release. - Node.js :
npm install @nascent-tech/memlessdès l'activation de la publication npm ; d'ici là, le.tgzde cette release avecMEMLESS_LIB.
Bibliothèques Linux : glibc 2.39 ou plus récent. musl et Windows non couverts.
0.2.0
Memless s'installe désormais avec l'outil de chaque langage, bibliothèque native comprise : plus rien à télécharger à la main, plus de MEMLESS_LIB à poser sur les plateformes couvertes.
Ce que cette version apporte
- Go :
go get github.com/nascent-tech/memless/bindings/go@v0.2.0. Le module embarque la bibliothèque de la plateforme compilée ; elle est extraite une fois dans le cache utilisateur et son SHA-256 est vérifié avant chaque chargement. - Node.js :
npm install @nascent-tech/memless— npm n'installe que le paquet de la plateforme de la machine. (Disponible sur npm dès que la publication npm est activée pour le projet. Le paquet.tgzde cette release s'installe tel quel, mais ses paquets de plateforme ne sont pas encore sur npm : avec lui, posezMEMLESS_LIB.) - PHP :
composer require nascent-tech/memless— le paquet porte les quatre bibliothèques et l'en-tête C. (Disponible sur Packagist dès que le miroirnascent-tech/memless-phpy est enregistré. L'archivememless-php-0.2.0.zipde cette release ne contient pas les bibliothèques : avec elle, posezMEMLESS_LIB— corrigé en 0.2.1.) - Plateformes couvertes : macOS (Apple silicon et Intel), Linux glibc (x86_64 et aarch64). Ordre de recherche identique dans les trois ponts :
MEMLESS_LIB, puis la bibliothèque embarquée, puistarget/d'un dépôt cloné.
Rupture
- Le paquet Composer s'appelle
nascent-tech/memless(il s'appelaitmemless/php). Adaptation :composer remove memless/php && composer require nascent-tech/memless. L'espace de noms PHP (Memless\) ne change pas.
À savoir
- Les bibliothèques Linux embarquées demandent glibc 2.39 ou plus récent (Ubuntu 24.04+). Ailleurs, construisez la bibliothèque (
cargo build --release -p memless-capi) et pointezMEMLESS_LIBdessus. - musl et Windows ne sont pas couverts.
- Chaque archive se recoupe avec
SHA256SUMSetmemless-lib-SHA256SUMS.
0.1.1
0.1.1 est la première version publiée avec ses archives. Le tag v0.1.0 n'a produit aucune archive (échec de l'empaquetage, corrigé ici) : 0.1.1 contient tout 0.1.0, plus ce correctif.
Première version de Memless : un moteur SQL en mémoire piloté par un seul fichier YAML de données, sans schéma déclaré, utilisable à l'identique depuis PHP, Go et Node.js. Pour préparer des données de test et de démonstration — jamais pour la production.
Ce que cette version apporte
- Charger et refuser : Memless devine la structure du fichier (type de chaque valeur, clé
id, relations<nom>_id→ table<nom>s) et refuse tout fichier incohérent en nommant la règle, la table et la ligne. - Interroger en SQL :
SELECTavecWHERE, jointure par relation devinée,COUNT/SUM, etORDER BY(stable, lignes sans la colonne en dernier ; types mêlés refusés). Tout ce qui dépasse ce sous-ensemble est refusé explicitement. - Écrire :
INSERT,UPDATE,DELETE. Chaque changement validé réécrit le fichier d'un coup, dans le même ordre, pour quegit diffne montre que les valeurs changées. - Transactions :
BEGIN/COMMIT/ROLLBACK, tout ou rien, une seule réécriture par transaction. - Recharger :
reload()relit le fichier restauré (par exemple par Git) sans recréer d'instance ; refusé pendant une transaction, et un rechargement refusé laisse l'état précédent intact. - Trois langages, une seule voix : mêmes résultats, mêmes messages d'erreur et même fichier réécrit à l'octet près, vérifiés par le banc de parité sur macOS et Linux, arm64 et x86_64.
Installer
- Bibliothèque native : télécharger l'archive
memless-capi-0.1.1-<cible>.tar.gzde votre système (vérifier avecSHA256SUMS), puis pointerMEMLESS_LIBvers la bibliothèque. - PHP (≥ 8.1, extension
ffi) : archivememless-phpde cette release. Go :go get github.com/nascent-tech/memless/bindings/go@v0.1.1. Node.js : le paquet.tgzde cette release (npm install <fichier>.tgz).
À savoir
- Première version : pas de migration. Windows n'est pas pris en charge.
- Le fichier est réécrit à chaque changement validé : pointez Memless sur des fixtures suivies par Git. Ignorez dans Git le résidu
.<nom>.memless-tmpqu'un arrêt brutal peut laisser. - Licence MIT.