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

推荐订阅源

Latest news
Latest news
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
L
LINUX DO - 热门话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
V
V2EX
博客园 - 司徒正美
B
Blog RSS Feed
AWS News Blog
AWS News Blog
MyScale Blog
MyScale Blog
Scott Helme
Scott Helme
Cisco Talos Blog
Cisco Talos Blog
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
博客园 - Franky
P
Proofpoint News Feed
博客园_首页
C
CERT Recently Published Vulnerability Notes
雷峰网
雷峰网
S
Schneier on Security
P
Proofpoint News Feed
Hugging Face - Blog
Hugging Face - Blog
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
WordPress大学
WordPress大学
The Hacker News
The Hacker News
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
A
Arctic Wolf
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
Engineering at Meta
Engineering at Meta
罗磊的独立博客
T
The Blog of Author Tim Ferriss
D
Darknet – Hacking Tools, Hacker News & Cyber Security
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
K
Kaspersky official blog
SecWiki News
SecWiki News
云风的 BLOG
云风的 BLOG
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Security Latest
Security Latest
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog
S
Security Affairs

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 2020 | Deno
2021-01-15 · via Deno

With API stabilizations, several large infrastructure refactors, the 1.0 release, and shipping the single most requested feature, 2020 brought a lot of action to the Deno project.

Please fill out the Deno survey to help guide our development in 2021.

Read on for Deno’s review of the year.

January: Goodbye libdeno, hello rusty_v8

libdeno was a C++ library that facilitated an interface between V8 engine and Rust code in Deno. The library was hard to reason about and develop additional functionality. The situation led to the birth of rusty_v8 in fall of 2019. rusty_v8 is a Rust crate that provides API for the V8 engine. By December rusty_v8 had all required bindings to replace libdeno. The effort started at the end of 2019, where the first parts of libdeno were rewritten using rusty_v8. Thanks to the growing test coverage in the Deno codebase we were confident moving forward and wrapped up the effort in a fortnight. libdeno was completely removed in release 0.29.0 and since then rusty_v8 has undergone major refactors to type safety of the bindings.

Releases that month:

February: deno fmt now uses dprint, deno test subcommand

This month we changed deno fmt drastically. Up to this point deno fmt was a simple subcommand that under the hood was only an alias to “deno run” that pointed to prettier. It meant that on the first run of deno fmt and after each upgrade, users had to download the latest version of the prettier module. This situation didn’t feel right as Deno promised to provide these tools out of the box. prettier was also pretty slow and the performance left a lot to be asked.

We got introduced to dprint by David Sherret, a code formatter written in Rust and based on the SWC JavaScript parser by Kang Dong Yun. dprint could format the code the same way the prettier module did but it was orders of magnitude faster. After some preliminary testing we decided to use dprint in deno fmt.

deno test had the same requirement of downloading modules from the standard library on the first run. That led to the addition of a new Deno.test() API and deno test CLI subcommand which made testing in Deno first class citizen.

Releases that month:

March: V8 debugger, deno doc, deno upgrade

Missing Chrome Devtools support was a major blocker for the 1.0 release. A lot of effort was spent adding support for V8 debugger and ability to connect to Deno process using Chrome Devtools.

Two new subcommands were added to the CLI:

  • deno doc
  • deno upgrade

We also saw a huge improvement to the build process. Up to this point, V8 was built from source for each and every build of Deno. V8 is a massive C++ project that can easily take over 30 minutes to build. Despite lots of build caches and other tricks, it was continuously a difficulty for us to contend with. We added the ability for rusty_v8 to produce and download a pre-built static lib on Github releases, allowing Deno builds to bypass the V8 build completely. This simplified and sped up the build in CI, but most importantly allowed contributors to build Deno more easily.

Releases that month:

April: Break all the APIs for the grand stabilization

This month was spent on reviewing APIs in Deno global in preparation for the 1.0 release. This led to many breaking changes. We were conservative, so any APIs that we were unsure of were moved behind the --unstable flag.

This was the major commitment for the 1.0 release; the Deno APIs marked as stable won’t have breaking changes until 2.0 release.

This month marked the last 0.x.y release of Deno.

Releases that month:

May: Deno 1.0 released

Beginning of the month marked removal of various features:

  • JSON imports
  • WASM imports
  • window.location API
  • Rust API for deno crate

The reason for removal was that we didn’t want to commit to supporting APIs in the current form either because of: lacking underlying specification in case of JSON/WASM imports; or additional maintenance burden in case of Rust API for deno crate.

Finally on May 13, exactly two years after Ryan’s original Deno presentation, we cut the 1.0.

On social media, the release was very well received. Our blog post was shared widely, we gained many new users and contributors.

But the dust had barely settled before we were back to work on another major component of the runtime: the dependency analysis in TypeScript host was rewritten using SWC. This change marked the beginning of efforts to rewrite parts of our TypeScript infrastructure in Rust.

Releases that month:

June: Incremental type checking and deno lint

One of major complaints received from community after 1.0 release was that TypeScript compilation and type-checking are extremely slow. There we set our eyes on improving out TSC integration to support incremental typechecking. After a few trial and error PRs we were able to get functionality working and significantly improvement development loop time. Even though we managed to improvement type checking speed by leveraging TSC’s incremental APIs we were still relying on it to emit transpiled sources. One of the great design principles of TypeScript is that it’s just JavaScript with additional syntax, so stripping out the type information (transpiling to JavaScript) is a relatively easy operation. So we set the goal of being able to use SWC in Rust to do transpilation, while continuing to use TSC for type checking.

After a few months of development out of sight, in a separate repository, a new deno lint subcommand was added. It’s yet another project that is built on top of the SWC JavaScript parser.

Releases that month:

July: Converting internal runtime code from TypeScript to JavaScript

This month we made a hard decision to convert our internal runtime code from TypeScript to JavaScript. There were several factors that led us to this decision: Complicated and slow build process on each build of the Deno internal runtime code was typechecked and bundled before being snapshotted. We had two separate implementations of TypeScript compiler host. One just for the build step, which was called the deno_typescript crate. The other one included in the deno binary. Additionally the whole process had a significant impact on the build times: 2 minutes incremental rebuilds! By using plain old JavaScript we were able to vastly simplify the internal build dependencies and overall complexity. Because the actual JavaScript code was produced by TypeScript compiler as a single file bundle, we had very little control of what the output code would look like. ES modules were transformed to use SystemJS loader in the bundle which added significant amount of code to the final bundle.

Releases that month:

August: New registry released

Original post: https://deno.com/blog/registry2

August 3, we released a new deno.land/x registry that uses webhooks to integrate with GitHub. When a module is updated our system downloads and forever preserves the source code, so that we can rely on immutable source code links.

Due to some non-public work happening to use the Deno infrastructure, we began the effort to break the Deno system up into smaller “op crates” which could be mixed and matched to produce custom V8 runtimes. First steps were taken towards this in August, and the deno_web crate was released providing some basic web APIs like Event, TextEncoder, TextDecoder.

This month the benchmark system was rewritten in Rust; which marked the start of tedious efforts of reducing the number of build dependencies for the Deno project.

Releases that month:

September: WebSocket API, CSS styling in console, file watcher, test coverage

This month we shipped our biggest feature release since 1.0. More details in the 1.4.0 blog post.

There was another important change on the maintenance part of the project. The release schedule was changed, from monthly minor release, to shipping new minor release every six weeks, matching the Rust and Chrome projects.

Releases that month:

October: REPL revamp, improved bundling, isolatedModules by default

1.5.0 blog post

The biggest change that happened in this month was enabling isolatedModules option in TypeScript compiler host by default. This setting changes the behavior of TypeScript in such a way that ensures that each file can be transpiled in isolation (without knowledge of types and/or other modules) by tools other than TSC like SWC and Babel. This change had a significant impact on the module ecosystem, making some popular modules unusable until maintainers adjusted the code to work with isolatedModules.

This month we also adopted the new bundle feature in SWC, yet another step in the direction of using Rust over the original TypeScript compiler.

Releases that month:

November: Grand rewrite of TSC compiler infrastructure

This month we saw a conclusion to Kitson Kelly’s weeks-long project of rewrite compilation pipeline. It improved the speed of TypeScript transpilation even more, but most importantly paid off a lot of technical debt.

The deno_crypto op crate was added.

Releases that month: 1.5.2, 1.5.3, 1.5.4

December: Self-contained binaries and LSP

1.6.0 blog post

In December we released version 1.6 containing two milestone features: self-contained binaries and the language server. deno compile was single most requested feature in Deno’s bug tracker.

Providing built-in language server allows to provide great development experience to all editors that can talk LSP protocol. It leads to third revamp of vscode_code that is still work-in-progress.

Releases that month:

2021

We’ve seen a lot of growth in the project and community in 2020. Going into 2021 we feel strongly about momentum behind Deno. Stay tuned for some exciting announcements coming soon!

If you’re interested in contributing to Deno or just want to follow our progress please look into the following: