Deno 1.13, released on August 10, marks a significant milestone for the JavaScript and TypeScript runtime with the stabilization of its native HTTP server API. This update enhances Deno’s ability to handle HTTP traffic seamlessly, including support for both HTTP/1.1 and HTTP/2 protocols. By exposing the hyper web server as a JavaScript API, Deno simplifies the process of serving diverse HTTP traffic out of the box. Developers using the older std/http
module are encouraged to migrate to the new HTTP server API, as the former is slated for removal in a future release. Initially introduced in Deno 1.9, the HTTP server API has now matured into a stable feature, reinforcing Deno’s capabilities for building web applications.
Beyond HTTP server improvements, Deno 1.13 introduces several enhancements aimed at developers working with structured data, TLS configurations, and cryptography. The new self.structuredClone
function provides an idiomatic, asynchronous API for deep cloning JavaScript values, including those with circular references. This structured clone algorithm is a key feature for working with web workers and MessagePort
, simplifying data management in complex applications. Additionally, developers can now use the DENO_TLS_CA_STORE
environment variable to control the certificate authorities trusted by Deno for TLS, while a new --unsafely-ignore-certificate-errors
flag allows SSL certificate verification to be disabled. However, Deno’s maintainers caution against using this feature except in controlled environments, as it poses significant security risks.
The update also expands the functionality of Deno’s WebCrypto APIs. For instance, the crypto.subtle.verify
method now supports verifying signatures created with Hash-based Message Authentication Code (HMAC) keys. These additions reflect Deno’s ongoing commitment to strengthening its cryptographic tools, ensuring that developers have access to secure and modern APIs for building reliable applications.
Finally, Deno 1.13 brings notable improvements to the Deno Language Server and its Visual Studio Code extension. Developers can now configure the language server to use a specific cache directory via the new deno.cache
setting, improving project organization and dependency management. Refactoring code actions have also been introduced for JavaScript and TypeScript files, enabling developers to perform common tasks like extracting functions or constants with ease. These enhancements highlight Deno’s focus on developer productivity, making it an increasingly attractive runtime for modern JavaScript and TypeScript projects.