{"id":81559,"date":"2020-05-14T19:42:16","date_gmt":"2020-05-14T17:42:16","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0"},"modified":"2020-05-14T19:42:16","modified_gmt":"2020-05-14T17:42:16","slug":"avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","title":{"rendered":"The creator of Node.js has introduced the secure JavaScript platform Deno 1.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>After two years of development <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/v1\">introduced<\/a><\/noindex> the first significant release <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/\">Deno 1.0<\/a><\/noindex>, a platform for the isolated execution of applications in JavaScript and TypeScript, which can be used to create server-side handlers. The platform is developed by Ryan Dahl (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Ryan_Dahl\">Ryan Dahl<\/a><\/noindex>), the creator of Node.js. Like Node.js, Deno uses the JavaScript engine <noindex><a rel=\"nofollow\" href=\"https:\/\/v8.dev\/\">V8<\/a><\/noindex>, which is also used in Chromium-based browsers. However, Deno is not a fork of Node.js, but rather a completely new project created from scratch. The project's code <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\">is distributed<\/a><\/noindex> is licensed under the MIT License. Builds <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\/releases\/tag\/v1.0.0\">are prepared<\/a><\/noindex> are available for Linux, Windows, and macOS.<\/p>\n<p>The significant version number is associated with the stabilization of the APIs in the Deno namespace, which are responsible for the interaction of applications with the OS. APIs that are currently <noindex><a rel=\"nofollow\" href=\"https:\/\/doc.deno.land\/https\/raw.githubusercontent.com\/denoland\/deno\/master\/cli\/js\/lib.deno.unstable.d.ts\">unstable<\/a><\/noindex>, by default are hidden and only accessible when running in &#171;&#8212;unstable&#187; mode. As new versions are developed, such APIs will gradually be classified as stable. The API in the global namespace, which includes common functions like setTimeout() and fetch(), is designed to be as close as possible to the APIs of standard web browsers and is evolving in accordance with web standards for browsers. The Rust APIs provided, which are used directly in the platform's code, as well as the interface for developing plugins for the Deno runtime, have not yet been stabilized and continue to evolve.<\/p>\n<p>The key motivations for creating the new JavaScript platform were the desire to eliminate conceptual errors that were <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=M3BM9TB-8yA\">made<\/a><\/noindex> in the architecture of Node.js, and to provide users with a more secure environment. To enhance security, the wrapper around the V8 engine is written in Rust, which helps avoid many vulnerabilities that arise from low-level memory operations, such as accessing memory after it's been freed, dereferencing null pointers, and buffer overflows. For handling requests in a non-blocking manner, the platform uses <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tokio-rs\/tokio\">Tokio<\/a><\/noindex>, also written in Rust. Tokio allows the creation of high-performance applications based on event-driven architecture, supporting multithreading and asynchronous network request handling.<\/p>\n<p>Key <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/manual\">Features<\/a><\/noindex> Deno:\n<\/p>\n<ul>\n<li class=\"l\"> Security orientation in the default configuration. File access, network capabilities, and access to environment variables are blocked by default and require explicit enabling. Default applications run in isolated sandbox environments and cannot access system capabilities without explicit permissions.\n<\/li>\n<li class=\"l\"> Built-in support for TypeScript language in addition to JavaScript. The default TypeScript compiler is used for type checking and JavaScript generation, resulting in reduced performance compared to parsing JavaScript in V8. A dedicated TypeScript type checking system implementation is planned for the future, which will significantly improve TypeScript processing performance.\n<\/li>\n<li class=\"l\"> The runtime is provided as a single self-contained executable file (\"deno\"). To run applications using Deno, simply <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/denoland\/deno\/releases\">download<\/a><\/noindex> the executable file for your platform, approximately 20 MB in size, without external dependencies and requiring no special installation in the system. Deno is not a monolithic application but a collection of Rust crate packages (<noindex><a rel=\"nofollow\" href=\"https:\/\/crates.io\/crates\/deno_core\">deno_core<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/crates.io\/crates\/rusty_v8\">rusty_v8<\/a><\/noindex>), which can be used separately.\n<\/li>\n<li class=\"l\"> When launching the program and loading modules, you can use URL addressing. For example, to run the program welcome.js, you can use the command \"deno https:\/\/deno.land\/std\/examples\/welcome.js\". Code from external resources is downloaded and cached on the local system, but is never automatically updated (to refresh, the application must be explicitly started with the flag \"--reload\");\n<\/li>\n<li class=\"l\"> Efficient handling of HTTP network requests in applications; the platform is designed for creating high-performance network applications.\n<\/li>\n<li class=\"l\"> The ability to create universal web applications that can run both in Deno and in a regular web browser.\n<li class=\"l\"> The presence of <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/std\">a standard set of modules<\/a><\/noindex>, the use of which does not require binding to external dependencies. Modules from the standard collection have undergone additional auditing and compatibility checking.\n<\/li>\n<li class=\"l\"> In addition to the runtime, the Deno platform also acts as a package manager and allows modules to be referenced by URL within the code. For example, to load a module, you can specify in the code \"import * as log from 'https:\/\/deno.land\/std\/log\/mod.ts'. Files loaded from external servers via URL are cached. Version binding for modules is determined by specifying version numbers within the URL, for example, 'https:\/\/unpkg.com\/liltest@0.0.5\/dist\/liltest.js';\n<\/li>\n<li class=\"l\"> The system includes a dependency inspection tool (the \"deno info\" command) and a utility for formatting code (deno fmt);\n<\/li>\n<li class=\"l\"> All application scripts can be bundled into a single JavaScript file.\n<\/li>\n<\/ul>\n<p> Differences from Node.js:\n<\/p>\n<ul>\n<li class=\"l\"> Deno does not use the npm package manager<br \/>\n and does not rely on repositories; modules are addressed via URL or file path, and the modules can be hosted on any site;\n<\/li>\n<li class=\"l\"> In Deno, \"package.json\" is not used to define modules;\n<\/li>\n<li class=\"l\"> API differences, all asynchronous actions in Deno return promises;\n<\/li>\n<li class=\"l\"> Deno requires explicit permission definitions for files, network access, and environment variables;\n<\/li>\n<li class=\"l\"> All errors not equipped with handlers lead to the termination of application execution;\n<\/li>\n<li class=\"l\"> Deno uses the ECMAScript module system and does not support require();\n<li class=\"l\"> The built-in HTTP server of Deno is written in TypeScript and operates over native TCP sockets, while the HTTP server of Node.js is written in C and provides bindings for JavaScript. Deno developers have focused on optimizing the entire layer of TCP sockets and providing a more general interface. The Deno HTTP server offers lower throughput but guarantees predictable low latencies. For example, in a test, a simple application based on the Deno HTTP server was able to handle 25,000 requests per second with a maximum latency of 1.3 milliseconds. In Node.js, a similar application processed 34,000 requests per second, but latencies ranged from 2 to 300 milliseconds.\n<li class=\"l\"> Deno is not compatible with Node.js packages (NPM), but it is being developed separately <noindex><a rel=\"nofollow\" href=\"https:\/\/deno.land\/std\/node\/\">is used<\/a><\/noindex> for compatibility with the Node.js standard library, as its development progresses, more applications written for Node.js will be able to run on Deno.\n<\/li>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52947\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0, \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0434\u043b\u044f \u043e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0430\u0445 JavaScript \u0438 TypeScript, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u0420\u0430\u0439\u0430\u043d \u0414\u0430\u043b\u044c (Ryan Dahl), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c Node.js. \u041a\u0430\u043a \u0438 \u0432 Node.js \u0432 Deno \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f JavaScript-\u0434\u0432\u0438\u0436\u043e\u043a V8, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Chromium. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-81559","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u0440 Node.js \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u0443\u044e JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Deno 1.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-14T17:42:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-14T17:42:16+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 The author of Node.js introduced the secure JavaScript platform Deno 1.0 | ProHoster","description":"After two years of development, the first significant release of Deno 1.0 has been presented.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u0440 Node.js \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u0443\u044e JavaScript-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 Deno 1.0 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0434\u0432\u0443\u0445 \u043b\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a Deno 1.0.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/avtor-node-js-predstavil-zashhishhyonnuyu-javascript-platformu-deno-1-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-14T17:42:16+00:00","article:modified_time":"2020-05-14T17:42:16+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81559","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:56:23","updated":"2022-09-29 01:12:15","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/81559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=81559"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/81559\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=81559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=81559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=81559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}