BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Nouvelle Version De Deno 1.10 Qui Inclut Le Support Pour WASM Memory Partagé Et Web Storage

Nouvelle Version De Deno 1.10 Qui Inclut Le Support Pour WASM Memory Partagé Et Web Storage

Favoris

L’équipe de Deno a récemment sorti Deno 1.10 qui intègre un support de WASM memory partagé, une implémentation de l’API web Storage, le support des import maps à distance, améliore l’exécuteur de test intégré, et plus encore.

Deno 1.10 supporte à présent WebAssembly Atomics et la mémoire partagée, à la suite de Chrome et Firefox qui utilisent à présent ces fonctionnalités par défaut :

const memory = new WebAssembly.Memory({
  initial: 1,
  maximum: 10,
  // enables atomics and allows for shared array buffers as WASM memory the backing store
  shared: true,
});
console.assert(memory.buffer instanceof SharedArrayBuffer);

La nouvelle release de Deno inclut également le support de l'API Web Storage dans le navigateur. L'API Web Storage fournit un mécanisme alternatif au cookies qui permet la persistance de petite quantité de paires clé/valeur (jusqu'à 5 MB de stockage en local). Ces mécanismes sont disponibles dans le navigateur via les propriétés Window.sessionStorage et Window.localStorage. Avec Deno, localStorage et sessionStorage peuvent être utilisés directement et sans permission préalable :

// kv.ts

const key = Deno.args[0];

if (key === undefined) {
  // si le user ne passe pas d'argument en paramètre, affiche le nombre d'entrées
  console.log(localStorage.length);
} else {
  const value = Deno.args[1];

  if (value === undefined) {
    // Si value n'est pas spécifiée, renvoie key
    console.log(localStorage.getItem(key));
  } else {
    // Si value est donnée, value est définie
    localStorage.setItem(key, value);
  }
}

Le stockage est déclenché en fonction de l'origine (option --location). Les exécutions du script précédent, présentées ci-dessous, montrent que la donnée est persistante d'une invocation à l'autre :

$ deno run --location https://example.com ./kv.ts
0
$ deno run --location https://example.com ./kv.ts foo bar
$ deno run --location https://example.com ./kv.ts foo
bar
$ deno run --location https://example.com ./kv.ts
1

Deno 1.10 permet au développeur de récupérer les import maps à distance :

$ deno install --import-map=https://example.com/import_map.json -n example https://example.com/mod.ts


Les import maps, récemment ajoutés à Chrome 89, spécifient quelles URLs sont récupérées par les instructions import et les expressions import() de JavaScript (par exemple, import moment from "moment"). Les import maps permettent donc le remappage des imports sans modifier le code source.

L’exécuteur de test intégré à Deno a également été significativement amélioré. Alors que les tests continuent à être exécutés en série par défaut, les développeurs ont maintenant à leur disposition l'option --jobs pour indiquer le nombre de threads exécutant des tests en parallèle. Les modules de test sont exécutés de façon isolée avec une nouvelle instance d'exécution pour chaque module. Deno.test permet aussi de spécifier les permissions pour chaque cas de test et de surveiller les changements dans les fichiers pertinents à ces cas de test (option --watch).

Les utilisateurs de Deno peuvent mettre à jour leur version en exécutant la commande deno upgrade dans un terminal. Deno 1.10 inclut d'autres fonctionnalités, des corrections de bugs, et des améliorations de perfomances. Les développeurs sont encouragés à consulter la liste complète et la description des nouvelles fonctionnalités et des APIs stabilisées.

Deno est un logiciel open-source disponible sous la licence MIT. Les contributions sont encouragées via le Deno Project et doivent suivre les instructions de contributions de Deno.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT