0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-01 20:25:12 -05:00
A modern runtime for JavaScript and TypeScript. https://deno.com/
Find a file
Bartek Iwańczuk ffd3ed9b8a
fix(ext/web): improve timers resolution for 0ms timeouts (#19212)
This commit changes the implementation of `ext/web` timers, by using
"op_void_async_deferred" for timeouts of 0ms.

0ms timeout is meant to be run at the end of the event loop tick and
currently Tokio timers that we use to back timeouts have at least 1ms
resolution. That means that 0ms timeout actually take >1ms. This
commit changes that and runs 0ms timeout at the end of the event
loop tick.

One consequence is that "unrefing" a 0ms timer will actually keep
the event loop alive (which I believe actually makes sense, the test
we had only worked because the timeout took more than 1ms).

Ref https://github.com/denoland/deno/issues/19034
2023-05-22 14:09:31 +02:00
.cargo fix: upgrade deno_ast to 0.23 (#17269) 2023-01-04 18:54:54 -05:00
.devcontainer chore: update devcontainer configuration (#15751) 2022-09-03 02:21:41 +02:00
.github chore: forward v1.33.4 release commit to main (#19181) 2023-05-18 20:44:10 +02:00
bench_util chore: forward v1.33.4 release commit to main (#19181) 2023-05-18 20:44:10 +02:00
cli fix(ext/web): improve timers resolution for 0ms timeouts (#19212) 2023-05-22 14:09:31 +02:00
core refactor(core): set function names for ops in JavaScript (#19208) 2023-05-21 20:23:28 +00:00
ext fix(ext/web): improve timers resolution for 0ms timeouts (#19212) 2023-05-22 14:09:31 +02:00
ops chore: forward v1.33.4 release commit to main (#19181) 2023-05-18 20:44:10 +02:00
runtime feat(runtime): Provide environment-configurable options for tokio parameters (#19173) 2023-05-18 18:08:57 -06:00
serde_v8 chore: forward v1.33.4 release commit to main (#19181) 2023-05-18 20:44:10 +02:00
test_ffi feat(ext/ffi): support marking symbols as optional (#18529) 2023-04-03 21:32:21 +03:00
test_napi chore: add tests for N-API symbol (#19205) 2023-05-21 13:14:48 -06:00
test_util feat(unstable): add more options to Deno.createHttpClient (#17385) 2023-05-21 03:43:54 +02:00
third_party@ee59830ca2 feat(lint): add Deno.run to no-deprecated-deno-api (#18869) 2023-04-27 02:52:52 +00:00
tools fix(ext/webidl): change createPromiseConverter (#16367) 2023-05-18 17:05:11 +03:00
.dlint.json chore: update dlint to v0.37.0 for GitHub Actions (#17295) 2023-01-16 17:17:18 +01:00
.dprint.json chore: check node_compat config diff in CI (#19119) 2023-05-15 21:22:53 +09:00
.editorconfig editorconfig: Don't insert final newline in .out files (#1686) 2019-02-07 11:31:49 -05:00
.gitattributes fix(test): support typechecking docs with CRLF line endings (#12748) 2021-11-15 09:58:04 -05:00
.gitignore chore(ext/websocket): readd autobahn|testsuite fuzzingclient (#18903) 2023-05-01 14:37:32 +02:00
.gitmodules chore: check node_compat config diff in CI (#19119) 2023-05-15 21:22:53 +09:00
.rustfmt.toml chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
Cargo.lock Revert "perf: use jemalloc as global allocator (#18957)" (#19187) 2023-05-19 09:10:33 -04:00
Cargo.toml Revert "perf: use jemalloc as global allocator (#18957)" (#19187) 2023-05-19 09:10:33 -04:00
LICENSE.md chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
README.md docs(readme): Update readme (#18677) 2023-04-17 01:08:05 +02:00
Releases.md chore: forward v1.33.4 release commit to main (#19181) 2023-05-18 20:44:10 +02:00
rust-toolchain.toml feat(ext/kv): return versionstamp from set/commit (#18512) 2023-03-30 20:57:21 +02:00

Deno

Twitter badge Discord badge YouTube badge

the deno mascot dinosaur standing in the rain

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Features

Install

Shell (Mac, Linux):

curl -fsSL https://deno.land/install.sh | sh

PowerShell (Windows):

irm https://deno.land/install.ps1 | iex

Homebrew (Mac):

brew install deno

Chocolatey (Windows):

choco install deno

Scoop (Windows):

scoop install deno

Build and install from source using Cargo:

cargo install deno --locked

See deno_install and releases for other options.

Getting Started

Try running a simple program:

deno run https://deno.land/std/examples/welcome.ts

Or setup a simple HTTP server:

import { serve } from "https://deno.land/std@0.182.0/http/server.ts";

serve((_req) => new Response("Hello, World!"));

More examples.

Additional Resources

Contributing

We appreciate your help!

To contribute, please read our contributing instructions.