Sortie de Deno 1.4, avec une API WebSocket

Par:
fredericmazue

lun, 21/09/2020 - 17:39

Deno est un projet créé par Ryan Dahl, également créateur de node.js. En 2018, Ryan Dahl avait exprimé ses 10 regrets à propos de node.js. D'une certaine façon, Deno est un node.js réécrit et repensé. Deno vient de sortir en version 1.0. Deno est écrit en Rust.

Deno est donc un nouveau runtime pour exécuter JavaScript et TypeScript en dehors du navigateur Web. Il vient sous la forme d'un seul fichier exécutable. Et selon les responsables du projet, il en sera toujours ainsi. Deno vous est présenté dans Programmez! #242.

Le projet Deno connaît une très grande activité et les nouvelles versions se succèdent à un rythme effréné. Nous en sommes déjà à Deno 1.4. Deux nouveautés majeures sont à remarquer.

Tout d'abord Deno 1.4 ajoute la prise en charge de la norme WebSocket API, aujourd'hui disponible dans tous les navigateurs modernes.

Voici un exemple de code, pris sur deno.land, qui illustre comment mettre cette API WebSocket en oeuvre avec Deno :

// Start the connection to the WebSocket server at echo.websocket.org
const ws = new WebSocket("ws://echo.websocket.org/");

// Register event listeners for the open, close, and message events
ws.onopen = () => {
  console.log("WebSocket ready!");

  // Send a message over the WebSocket to the server
  ws.send("Hello World!");
};
ws.onmessage = (message) => {
  // Log the message we recieve:
  console.log("Received data:", message.data);

  // Close the websocket after receiving the message
  ws.close();
};
ws.onclose = () => console.log("WebSocket closed!");
ws.onerror = (err) => console.log("WebSocket error:", err.error);

// When running this the following is logged to the console:
//
// WebSocket ready!
// Received data: Hello World!
// WebSocket closed!

Ensuite Deno dispose maintenant d'un observateur de fichiers intégré qui peut être utilisé pour redémarrer un script lorsque l'une de ses dépendances change. L'observateur de fichiers détermine automatiquement toutes les importations locales de votre script et les surveille.

Pour l'utiliser, on lance un script comme d'habitude, en ajoutant simplement le commutateur --watch. Par exemple :

$ echo "console.log('Hello World!')" > mod.ts
$ deno run --watch --unstable mod.ts
Check file:///home/deno/mod.ts
Hello World
Watcher Process terminated! Restarting on file change...
# now run `echo "console.log('File watching works!')" > ./mod.ts` in a different terminal
Watcher File change detected! Restarting!
Check file:///home/deno/mod.ts
File watching works!
Watcher Process terminated! Restarting on file change... 

Site : deno.land

Deno est un logiciel libre sous licence MIT disponible sur GitHub.