Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deno, où en est-on ?

Deno, où en est-on ?

Voilà presque 2 ans que Deno, technologie server-side équivalente à NodeJS, a été annoncée et présentée. A l'aube de TypeScript 3.8 et du tant attendu top level await, où en est-on de Deno 1.0 ?

Avatar for Lilian Saget-Lethias

Lilian Saget-Lethias

March 03, 2020
Tweet

More Decks by Lilian Saget-Lethias

Other Decks in Programming

Transcript

  1. ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 2 @lsagetlethias Assistant

    coorga @ParisDeno Creator Software Architect (yam l std m odule contributor)
  2. Quick recap (5’) Dernières main features (8’) Futur (4’) Communautés

    (3+’) ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 3 Sommaire
  3. Technologie backend Présenté en juin 2018 Version 0.35.0 (29/02/2020) Rust

    & Tokio (moteur / event-loop) Sandboxé par défaut ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 4 Recap TypeScript Natif Pas de “npm-like” ni node_modules Dépendances explicites (“<url>.ts”) Compatible Web Ecosystème dogmatique (fmt, test, ...)
  4. UDP Support ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 5

    Dernière features majeures Deno.listen({ transport: "udp"; }); NodeJS Polyfill const p = path.resolve( Deno.cwd(), "file.txt", ); fs.readFile(p); Signal Handler const sig = signal( Deno.Signal.SIGKILL ); for await ( const _ of sig ) { /* */ } UDP Support NodeJS Polyfill Signal Handler
  5. Compiler API ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 6

    Dernière features majeures Deno.test Refacto * rusty_v8 “Plugins” WASM * Import Map Lock File * non abordé
  6. Utiliser Deno pour compiler Deno. Deno.compile() Deno.bundle() Deno.transpileOnly() ParisTS -

    Mars 2020 @lsagetlethias / @ParisDeno 7 Dernière features majeures - Compiler API
  7. Crate Rust intrinsèquement liée à la V8 C++ API Chrome

    DevTool Debug compatible ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 8 Dernière features majeures - rusty_v8
  8. Utilise les Ops sous le capot (Ops = binding c++

    / rust) Développé en Rust Accessible en TypeScript ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 9 Dernière features majeures - “Plugins”
  9. const plugin = Deno.openPlugin("./path/to/some/lib.so"); const some_op = plugin.ops.some_op; function doSomeOp():

    null | ArrayBufferView { const response = some_op.dispatch(new UInt8Array([1,2,3,4])); return response; } ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 10 Dernière features majeures - “Plugins” pub fn some_op( data: &[u8], zero_copy: Option<PinnedBuf> ) -> CoreOp { // stuff }
  10. { "imports": { "http/": "https://deno.land/std/http/" } } ParisTS - Mars

    2020 @lsagetlethias / @ParisDeno 11 Dernière features majeures - Import Maps import { serve } from "http/server.ts";
  11. Assure l’intégrité des dépendances Basé sur les hash git Ne

    gère pas les versions ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 12 Dernière features majeures - Lock file
  12. Maître mot : Developer eXperience Chrome DevTools (merci rusty_v8) et

    --debug flag VSCode extension (https://github.com/axetroy/vscode-deno) Perfs improve sur le transport HTTP ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 13 Futur
  13. ParisTS - Mars 2020 @lsagetlethias / @ParisDeno 15 Communauté Qui

    grandissent aussi : India, Japan, USA, … Aucune communauté France pour l’instant à part ... https://deno.news