โครงการ Deno กำลังพัฒนาแพลตฟอร์ม JavaScript ที่ปลอดภัยซึ่งคล้ายกับ Node.js

มีอยู่ การเปิดตัวโครงการ ดีโน่ 0.33ซึ่งนำเสนอแพลตฟอร์มที่คล้ายกับ Node.js สำหรับการดำเนินการแอปพลิเคชันแบบสแตนด์อโลนใน JavaScript และ TypeScript ที่สามารถใช้เพื่อเรียกใช้แอปพลิเคชันโดยไม่ต้องเชื่อมโยงกับเบราว์เซอร์ เช่น การสร้างตัวจัดการที่ทำงานบนเซิร์ฟเวอร์ Deno ใช้เครื่องมือ JavaScript V8ซึ่งใช้ใน Node.js และเบราว์เซอร์ตามโปรเจ็กต์ Chromium เช่นกัน รหัสโครงการ จัดจำหน่ายโดย ภายใต้ใบอนุญาต MIT โครงการนี้กำลังได้รับการพัฒนาโดย Ryan Dahl (ไรอัน ดาห์ล) ผู้สร้างแพลตฟอร์ม Node.js JavaScript

เป้าหมายหลักประการหนึ่งของการสร้างรันไทม์ใหม่สำหรับ JavaScript คือการจัดหาสภาพแวดล้อมที่ปลอดภัยยิ่งขึ้น เพื่อปรับปรุงความปลอดภัย เอ็นจิ้น V8 เขียนด้วยภาษา Rust ซึ่งหลีกเลี่ยงช่องโหว่มากมายที่เกิดขึ้นจากการจัดการหน่วยความจำระดับต่ำ เช่น การเข้าถึงหลังจากฟรี การยกเลิกการอ้างอิงตัวชี้ค่าว่าง และการโอเวอร์รันบัฟเฟอร์ แพลตฟอร์มนี้ใช้เพื่อประมวลผลคำขอในโหมดไม่บล็อก โตเกียวเขียนด้วยภาษาสนิมด้วย Tokio อนุญาตให้คุณสร้างแอปพลิเคชันประสิทธิภาพสูงตามสถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์ รองรับมัลติเธรดและประมวลผลคำขอเครือข่ายในโหมดอะซิงโครนัส

หลัก คุณสมบัติ เดโน่:

  • การกำหนดค่าเริ่มต้นที่มุ่งเน้นความปลอดภัย การเข้าถึงไฟล์ เครือข่าย และการเข้าถึงตัวแปรสภาพแวดล้อมถูกปิดใช้งานตามค่าเริ่มต้น และจะต้องเปิดใช้งานอย่างชัดเจน
  • การสนับสนุนภาษา TypeScript ในตัวนอกเหนือจาก JavaScript
  • รันไทม์มาในรูปแบบของไฟล์ปฏิบัติการที่มีอยู่ในตัวเองไฟล์เดียว ("deno") หากต้องการเรียกใช้แอปพลิเคชันโดยใช้ Deno ก็เพียงพอแล้ว ดาวน์โหลด สำหรับแพลตฟอร์มไฟล์ปฏิบัติการหนึ่งไฟล์ขนาดประมาณ 10 MB ซึ่งไม่มีการพึ่งพาภายนอกและไม่จำเป็นต้องติดตั้งพิเศษใด ๆ บนระบบ
  • เมื่อเริ่มต้นโปรแกรมรวมทั้งโหลดโมดูลคุณสามารถใช้การกำหนดที่อยู่ URL ได้ ตัวอย่างเช่น หากต้องการรันโปรแกรมยินดีต้อนรับ js คุณสามารถใช้คำสั่ง “deno https://deno.land/std/examples/welcome.js” โค้ดจากแหล่งข้อมูลภายนอกจะถูกดาวน์โหลดและแคชไว้บนระบบโลคัล แต่จะไม่มีการอัพเดตโดยอัตโนมัติ (การอัปเดตจำเป็นต้องรันแอปพลิเคชันอย่างชัดเจนด้วยแฟล็ก "--reload")
  • การประมวลผลคำขอเครือข่ายอย่างมีประสิทธิภาพผ่าน HTTP ในแอปพลิเคชัน แพลตฟอร์มนี้ออกแบบมาเพื่อสร้างแอปพลิเคชันเครือข่ายประสิทธิภาพสูง
  • ความสามารถในการสร้างเว็บแอปพลิเคชันสากลที่สามารถดำเนินการได้ทั้งใน Deno และในเว็บเบราว์เซอร์ทั่วไป
  • นอกเหนือจากรันไทม์แล้ว แพลตฟอร์ม Deno ยังทำหน้าที่เป็นผู้จัดการแพ็คเกจและช่วยให้คุณเข้าถึงโมดูลด้วย URL ภายในโค้ด ตัวอย่างเช่น หากต้องการโหลดโมดูล คุณสามารถระบุในโค้ด “import * as log from “https://deno.land/std/log/mod.ts” ไฟล์ที่ดาวน์โหลดจากเซิร์ฟเวอร์ภายนอกผ่าน URL จะถูกแคชไว้ การผูกเข้ากับเวอร์ชันของโมดูลถูกกำหนดโดยการระบุหมายเลขเวอร์ชันภายใน URL เช่น “https://unpkg.com/[ป้องกันอีเมล]/dist/liltest.js";
  • โครงสร้างประกอบด้วยระบบตรวจสอบการพึ่งพาแบบรวม (คำสั่ง “deno info”) และยูทิลิตี้สำหรับการจัดรูปแบบโค้ด (deno fmt)
  • สำหรับนักพัฒนาแอพพลิเคชั่น เสนอ ชุดโมดูลมาตรฐานที่ผ่านการตรวจสอบเพิ่มเติมและการทดสอบความเข้ากันได้
  • สคริปต์แอปพลิเคชันทั้งหมดสามารถรวมเป็นไฟล์ JavaScript เดียวได้

ความแตกต่างจาก Node.js:

  • Deno ไม่ได้ใช้ตัวจัดการแพ็คเกจ npm
    และไม่เชื่อมโยงกับที่เก็บข้อมูล โมดูลต่างๆ ได้รับการแก้ไขผ่าน URL หรือเส้นทางของไฟล์ และสามารถวางโมดูลบนเว็บไซต์ใดๆ ก็ได้

  • Deno ไม่ได้ใช้ "package.json" เพื่อกำหนดโมดูล
  • ความแตกต่างของ API การดำเนินการแบบอะซิงโครนัสทั้งหมดใน Deno ส่งคืนสัญญา
  • Deno ต้องการคำจำกัดความที่ชัดเจนของการอนุญาตที่จำเป็นทั้งหมดสำหรับไฟล์ ตัวแปรเครือข่ายและสภาพแวดล้อม
  • ข้อผิดพลาดทั้งหมดที่ไม่ได้มาพร้อมกับตัวจัดการจะนำไปสู่การยุติแอปพลิเคชัน
  • Deno ใช้ระบบโมดูล ECMAScript และไม่รองรับ need()

ที่มา: opennet.ru

เพิ่มความคิดเห็น