惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
D
Docker
美团技术团队
N
Netflix TechBlog - Medium
罗磊的独立博客
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
腾讯CDC
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
V
V2EX
L
LangChain Blog
博客园 - 【当耐特】
B
Blog RSS Feed
量子位
U
Unit 42
Engineering at Meta
Engineering at Meta
小众软件
小众软件
宝玉的分享
宝玉的分享
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
博客园 - 司徒正美
The Cloudflare Blog
The GitHub Blog
The GitHub Blog
T
Tailwind CSS Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
SegmentFault 最新的问题
博客园_首页
Attack and Defense Labs
Attack and Defense Labs
TaoSecurity Blog
TaoSecurity Blog
Apple Machine Learning Research
Apple Machine Learning Research
S
Security @ Cisco Blogs

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno
Deno in 2023 | Deno
2024-02-02 · via Deno

In 2023, Deno shifted into high gear with respect to Node/npm compatibility and performance work, while continuing to move towards our goal of radically simplifying web development. Here’s a summary of what changed in 2023:

  • Deno now understands package.json files and has the ability to import built-in Node modules using node: specifiers like node:fs and node:crypto. Read more.
  • A new web server API, Deno.serve, was stabilized and HTTP throughput improved ~73% over the year.
  • deno compile got support for workers, dynamic imports, and npm modules.
  • Deno made better use of web streams (ReadableStream and WriteableStream) and AbortController throughout its APIs to narrow the gap between browser and server-side programming.
  • Deno’s configuration file, deno.json , now doubles as an import map. We flattened the schema, added glob support, and a useful top-level "exclude" attribute — all which allows for terse adjustments to how Deno is executed.
  • Jupyter, the open source notebook tool, added support for JavaScript and TypeScript using Deno
  • WebGPU was finally added to Deno after nearly a year of development.
  • Deno’s zero configuration TypeScript got better editor integration with substantial improvements in the LSP and VS Code integration.
  • Fresh, the Deno native web framework grew in functionality with proper Tailwind support, Partials, and layout files.
  • Deno Deploy became more powerful with globally distributed primatives: Deno KV, Queues, Cron.
  • We released self-service Subhosting for platforms looking to deploy and execute untrusted multi-tenant JavaScript.

Let’s dive deeper into the changes below.

Enhanced Compatibility with Node and npm

In a significant move toward ecosystem harmony, Deno expanded its capabilities in 2023 by incorporating built-in Node modules, such as node:fs and node:child_process, accessible through the node: specifier. This addition builds on the native npm support introduced in late 2022, using the npm: specifier, further bridging the gap between Deno and the Node ecosystem. As of now, Deno boasts partial or full support for 38 of the 42 Node built-in APIs, marking a substantial stride in compatibility.

To facilitate a smoother transition from Node to Deno, we introduced several new features:

These enhancements are particularly useful for developers looking to run existing Node projects in Deno without extensive modifications.

A notable advancement in the past year was the stabilization of the Node-API. This development eliminates the need for the --unstable flag when utilizing npm packages dependent on Node-API, thereby broadening the range of supported npm packages and streamlining the integration process.

Simpler, faster web server with Deno.serve()

We’ve significantly streamlined web server creation in Deno by introducing and stabilizing the Deno.serve() function, allowing developers to launch a server with minimal code:

Deno.serve((req) => new Response("Hello, world"));

This enhancement is part of our ongoing commitment to simplify development processes and reduce the need for extensive boilerplate code. The Deno.serve() function embodies this philosophy, enabling efficient and concise server setup.

Performance has seen substantial improvements through targeted optimizations in the core libraries and the event loop mechanism. In benchmark tests using a basic “Hello, world” server setup, Deno’s HTTP throughput has seen remarkable gains, nearly doubling since late 2023. When compared to a similar Node.js server, Deno now demonstrates a ~61% increase in throughput, alongside notable enhancements in tail latency and memory efficiency.

HTTP benchmark in requests per second

Run on bare metal 8 core, 64GB ram, Intel Xeon E-2378G with `wrk -d 10s`

These advancements are not limited to Deno-specific projects; they extend to modules and applications utilizing the node:http module, thanks to Deno.serve’s underlying architecture.

A key factor in these performance gains is the improved integration of Deno’s HTTP interfaces with the Hyper and Reqwest libraries. This integration has minimized unnecessary data allocation and duplication across different layers of the Deno runtime.

Furthermore, we’ve optimized the Deno event loop, responsible for managing asynchronous operations and resource monitoring, to reduce overhead and enhance the runtime’s overall efficiency. These collective improvements underscore our dedication to providing a robust, high-performance environment for web development.

More flexible deno.json

At Deno, we stand by the principle of zero-configuration programming, particularly valuing the simplicity of single-file programs, even for those written in TypeScript. Recognizing that larger projects often demand more sophisticated setups, we’ve continuously improved our optional deno.json configuration file to meet these complex needs without sacrificing ease of use:

  • Streamlined Configuration: We’ve transformed deno.json to double as an import map, effectively reducing the need for separate configuration files and simplifying project setups. Learn more about import maps.
  • Enhanced Formatting Options: deno fmt now supports semicolons, offering more flexibility in code styling to accommodate diverse developer preferences.
  • Node and npm Compatibility: Integration with package.json enhances compatibility, making it easier for projects to transition between Node and Deno environments. See how we improved compatibility.
  • Simplified Configuration Structure: We’ve flattened the deno.json structure, making it more intuitive and easier to navigate for developers. Discover the simpler structure.
  • Glob Support: The introduction of glob patterns in deno.json allows for more precise control over file and directory inclusion or exclusion in various operations such as formatting, linting, and testing. Explore glob support details.

These enhancements are part of our ongoing commitment to making Deno not only powerful and versatile for large-scale applications but also simple and accessible for smaller projects.

Smoother development experience with LSP

Deno’s Language Server Protocol (LSP) integration elevates the development experience within editors and IDEs, offering robust features like precise go-to-definition, comprehensive IntelliSense, and seamless code formatting for TypeScript projects. This year, we’ve dedicated significant effort to enhance the LSP, making coding in Deno smoother and more intuitive:

  • Extended Auto-Complete: Now includes support for npm: and node: specifiers, streamlining the use of Node modules within Deno.
  • VSCode Extension Activation: The Deno VSCode extension is now triggered automatically when a deno.json file is detected in your project, ensuring immediate access to Deno’s powerful tooling.
  • Intelligent Import Management: Imports in TypeScript and JavaScript files are now updated automatically when files are renamed, maintaining code consistency and reducing manual refactoring.
  • Efficient Document Pre-Loading: Ensures features like “find references” work seamlessly across all files in a project, enhancing code navigation and understanding.

To fully leverage these improvements, try the Deno extension for Visual Studio Code, designed to integrate these enhancements directly into your development workflow.

WebGPU

Deno has now integrated WebGPU, a cutting-edge technology that empowers developers to harness the power of GPU hardware directly with JavaScript. This high-performance, low-level interface is designed for a wide range of applications, from graphics rendering to data analysis, and machine learning, all within the familiar environment of web-standard JavaScript.

After a year of dedicated development, WebGPU is accessible in Deno behind the --unstable-webgpu flag, marking a significant milestone in expanding the capabilities of Deno applications. This feature is especially promising for developers looking to push the boundaries of what’s possible with JavaScript in areas requiring intense computational power.

We are also actively developing features to enable WebGPU for rendering in native GUI windows, further broadening the potential use cases for Deno developers. Stay updated on this feature’s progress.

To explore practical applications and see WebGPU in action within Deno, visit our WebGPU examples repository, which provides a variety of sample projects and code snippets.

Jupyter notebooks

Jupyter, the open source notebook tool, added support for JavaScript and TypeScript using Deno. This means data science, visualization, and more can all be done using modern JavaScript and TypeScript and web standards APIs.

Here’s an example of grabbing data with fetch and visualizing it with observablehq/plot:

A scatter plot in Jupyter notebooks using TypeScript with Deno

Jupyter support has also enabled building generative AI/ML models using JavaScript and TypeScript, as Andrew Ng and DeepLearning.AI have developed a generative AI course on building LLM Apps with LangChain.js that uses Deno.

Notable open source rust crates

Deno’s surface area touches a wide range of open source projects, which we eagerly contribute to in order to expand Deno’s feature set and optimize performance. This year, we released a few Rust crates that developers might find useful independently of Deno itself:

  • rustls-tokio-stream a Rust crate that replaces tokio-rustls adding more advanced features like supporting duplex I/O via tokio::io::split. Critically it does not require either read or write polling to perform handshakes.
  • fastwebsockets is a minimal, fast WebSocket server implementation that sits behind Deno’s WebSocket implementation. It completely passes the Autobahn TestSuite and fuzzed with LLVM’s libfuzzer. You can use it as a raw websocket frame parser and deal with spec compliance yourself, or you can use it as a full-fledged websocket server.
  • monch is a parser inspired by nom, but specifically for strings and with some additional combinators we use in Deno. It backs deno_task_shell.
  • deno_task_shell is a cross platform shell implementation that helps deno task run across windows and unix. Think of it as a more advanced version of the common Node.js utility cross-env.

Fresh

We continued to make Fresh, Deno’s modern full stack web framework that sends zero client-side JavaScript by default, easier to use and more performant.

We’ve got a lot planned for Fresh in 2024, such as view transitions, hot module reloading, and faster JSX transforms.

Expanding Deno’s cloud business

Though we’ve covered the big updates from our open source projects, the overall Deno picture would be incomplete without mentioning developments on the commercial side.

Though Deno Subhosting has been around for a while powering Netlify’s edge functions and Deco.cx’s customer’s e-commerce stores, this year we made it self-service so that anyone can deploy and run their user’s code programmatically via our Subhosting API for free. It’s built to run third-party, untrusted code securely, as it’s designed from the ground up for maximum tenant isolation. (Not sure what to use Deno Subhosting API for? Check out this tutorial on how to build your own cloud IDE.)

We’re made strides towards our vision of radically simplifying web development with the launch of cloud primitives: Deno KV, Queues, and Cron. They’re built right into the runtime so you can get setup without juggling API keys or futzing with config:

const kv = await Deno.openKv();

These cloud primitives seamlessly become globally distributed services when you use Deno Deploy, optimizing your servers and applications for performance.

We’ve also broadened access to Deno KV by turning it into its own open sourced binary, added support to remotely connect to any Deno KV instance, made it accessible in Node/npm via our official Deno KV npm module, as well as adding support for continuous replication with point-in-time recovery to S3 and GCS.

We’ve got some big plans to simplify cloud development even further with more features and new primitives, so stay tuned.

Deno 2 👀

We’re preparing for Deno 2, which will offer improved compatibility with Node and npm, by providing a migration guide to ensure a smooth transition. Alongside an improved runtime, we also have some exciting announcements around managing and optimizing dependencies for your projects. Stay tuned in the coming weeks for a more detailed roadmap of what’s to come. If you want a sneak peak - look here.

Don’t miss any updates! Follow us on Twitter.