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

推荐订阅源

The Hacker News
The Hacker News
C
Cisco Blogs
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
S
Security Affairs
PCI Perspectives
PCI Perspectives
The Last Watchdog
The Last Watchdog
AWS News Blog
AWS News Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
N
News and Events Feed by Topic
W
WeLiveSecurity
T
Tenable Blog
L
LINUX DO - 最新话题
T
Tor Project blog
Help Net Security
Help Net Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
爱范儿
爱范儿
O
OpenAI News
Hacker News - Newest:
Hacker News - Newest: "LLM"
Y
Y Combinator Blog
I
Intezer
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
S
Securelist
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
量子位
SecWiki News
SecWiki News
L
Lohrmann on Cybersecurity
T
Threat Research - Cisco Blogs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Scott Helme
Scott Helme
H
Help Net Security
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
I
InfoQ
TaoSecurity Blog
TaoSecurity Blog
Blog — PlanetScale
Blog — PlanetScale
N
News | PayPal Newsroom
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes

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 1.35: A fast and convenient way to build web servers | Deno
2023-07-06 · via Deno

Deno’s vision is to make programming as simple as possible, which is why the runtime ships with a robust toolchain, native TypeScript support, and web standard APIs, so you can skip configuration and learning a new set of APIs and be productive immediately.

Today’s minor release brings us closer to that vision:

  • a fast and convenient way to build web servers, Deno.serve(), is now stable
  • improving npm support with the addition of highly anticipated packages

Besides the aforementioned features, this release also includes many other improvements and bug fixes:

  • Deno API changes
  • Web API changes
  • Language server improvements
  • Changes to the standard library
  • V8 11.6 and TypeScript 5.1.6

Deno.serve() is now stable

The long awaited new web server API, Deno.serve(), is now stable. It offers a much easier API while significantly enhancing performance.

Deno.serve() allows developers to set up a web server using a single line of code:

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

Contrast it with earlier API, Deno.serveHttp(), which required the setup of an async iterator over connections and subsequent handling of HTTP events (in an async IIFE):

async function handleHttp(conn: Deno.Conn) {
  (async () => {
    for await (const r of Deno.serveHttp(conn)) {
      r.respondWith(new Response("Hello World"));
    }
  });
}

for await (const conn of Deno.listen({ port: 8000 })) {
  handleHttp(conn);
}

Deno.serve() uses web standard Request and Response objects, for seamless interaction with fetch(), web streams, and other standard APIs.

Moreover, Deno.serve() delivers tangible performance benefits. In our benchmarks, a hello-world server built with Deno.serve() yielded twice the throughput of a similar Node.js server, with better tail latency and more efficient memory use.

Deno 1.35.0 vs Node 18.12.1 HTTP performance

Any npm package using node:http module will use this API under the hood to enjoy the same performance benefits. Here’s a comparison of running a “hello-world” express server in Node.js and Deno:

Deno 1.35.0 vs Node 18.12.1 express performance

These benchmarks were made against Node 18.12.1 on a bare metal Intel Xeon E-2378G at 2.80Ghz, running Ubuntu 22.04.

For more information on this new API, refer to the Deno.serve() documentation and the Deno manual.

Improvements to npm and Node compatibility

Deno’s npm compatibility allows you to use your go-to packages with minimal supply chain risks.

This month we made great improvements to compatibility of http, https and zlib modules. Full list of changes to built-in Node.js module includes:

  • fs.FileHandle
  • http.ClientRequest.upgrade
  • http.IncomingMessageForClient.complete
  • http2
  • https.createServer
  • process.reallyExit
  • v8.setFlagsFromString
  • zlib.brotliCompress
  • zlib.brotliCompressSync
  • zlib.brotliDecompress
  • zlib.brotliDecompressSync
  • zlib.createBrotliCompress
  • zlib.createBrotliDecompress

Every release adds support for more and more npm packages. Here’s a list of highly anticipated packages, that now work with Deno thanks to the improvements to previously mentioned APIs:

Next month, we will focus our efforts on getting @grpc/grpc-js, google-cloud-node and various DB drivers working. If you find a package that doesn’t work, please report an issue at denoland/deno repo.

Deno API changes

Following APIs were added to the Deno namespace:

  • Deno.AtomicOperation
  • Deno.errors.FilesystemLoop
  • Deno.errors.IsADirectory
  • Deno.errors.NetworkUnreachable
  • Deno.errors.NotADirectory
  • Deno.InspectOptions.breakLength
  • Deno.InspectOptions.escapeSequences
  • Deno.KV.enqueue

Additionally these APIs no longer require --unstable flag:

  • Deno.ConnectTlsOptions.alpnProtocols
  • Deno.ListenTlsOptions.alpnProtocols
  • Deno.serve
  • Deno.StartTlsOptions.alpnProtocols

You can learn more about these APIs, by visiting the API reference.

Web API changes

This release brings support for Headers.getSetCookie() and ReadableStream.from() APIs, while URLSearchParams.delete() and URLSearchParams.has() now support value parameter.

Language server improvements

This release brings a huge quality of life improvement to the LSP, by fixing a long standing problem with auto-imports for npm packages and import maps.

Auto-complete for npm: specifiers works now:

So does auto-complete for import map specifiers:

Changes to the standard library

Rewrite of semver

In this release, semver module of the standard library has been rewritten from scratch to reduce the internal complexity and clean up the public interfaces. The module started as a port of npm:semver, but it had a lot of undesired characteristics such as; stateful SemVer class or excessively overloaded APIs.

In this release each semver instance becomes an immutable plain JavaScript object. Most APIs now only accept single set of input types. The old interfaces are supported with @deprecated JSDoc tags. That way your editor will point out that they need to be updated. Old interfaces are scheduled to be removed in std@0.200.0.

import { lte, parse } from "https://deno.land/std@0.193.0/semver/mod.ts";

lte(parse("1.2.3"), parse("1.2.4"));

lte("1.2.3", "1.2.4"); 

Thank you to Justin Chase, Jesse Jackson, Max Duval, Asher Gomez, Tim Reichen for contributing this change.

Addition of html/entities

In this release, the new standard module html has been added. The module currently has escape and unescape APIs, which escapes/unescapes the special HTML characters in the given strings.

import {
  escape,
  unescape,
} from "https://deno.land/std@0.193.0/html/entities.ts`";

escape("<html>"); 
unescape("&lt;html&gt;"); 

escape escapes 5 characters, &, <, >, ", and ', by default. unescape handles those 5 plus &apos;, &nbsp;, and decimal and hex HTML entities by default. There’s also an option for enabling the handling of all known HTML entities. See the module docs for more details.

Thanks to Lionel Rowe for contributing this feature.

Addition of http/user_agent

In this release http/user_agent has been added. The module detects the OS, CPU, device, and browser types from the given user agent string. The module is heavily inspired by npm:ua-parser-js.

import { UserAgent } from "https://deno.land/std@0.193.0/http/user_agent.ts";

const ua = new UserAgent(
  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
);

console.log(ua.os); 
console.log(ua.cpu); 
console.log(ua.engine); 
console.log(ua.browser); 

Thanks to Kitson Kelly for contributing this feature.

V8 11.6 and TypeScript 5.1.6

Finally, Deno v1.35 ships with V8 11.6 and TypeScript 5.1.6.

Take a look at Fresh 1.2, the latest release of our next-gen web framework.