0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 17:34:47 -05:00
A modern runtime for JavaScript and TypeScript. https://deno.com/
Find a file
Liam Murphy 4786e1d92d
fix(runtime): handle race condition in postMessage where worker has terminated (#10239)
The panic was caused by the lack of an error class mapping for
futures::channel::TrySendError, but it shouldn't have been throwing an error in
the first place - when a worker has terminated, postMessage should just return.
The issue was that the termination message hadn't yet been recieved, so it was
carrying on with trying to send the message. This adds another check on the Rust
side for if the channel is closed, and if it is the worker is treated as
terminated.
2021-04-19 16:57:02 +02:00
.cargo Statically link the C runtime library on Windows (#4469) 2020-03-23 20:31:29 +01:00
.github upgrade: rusty_v8 0.22.1 (V8 9.1.269.5) (#10159) 2021-04-13 08:47:24 +00:00
bench_util tooling(bench_util): benching and profiling utilities (#10223) 2021-04-18 14:51:48 +02:00
cli fix(runtime): handle race condition in postMessage where worker has terminated (#10239) 2021-04-19 16:57:02 +02:00
core refactor(core): move SerializablePkg to serde_v8 (#10231) 2021-04-19 15:19:49 +02:00
docs docs: fix typo in fetch example (#10057) 2021-04-09 23:16:33 +09:00
op_crates op_crates/url: basic url_parse bench (#10245) 2021-04-19 15:42:59 +02:00
runtime fix(runtime): handle race condition in postMessage where worker has terminated (#10239) 2021-04-19 16:57:02 +02:00
serde_v8 refactor(core): move SerializablePkg to serde_v8 (#10231) 2021-04-19 15:19:49 +02:00
test_plugin core: avoid async op future reboxing to bundle PromiseId (#10123) 2021-04-11 07:05:43 +02:00
test_util chore: align Headers to spec (#10199) 2021-04-19 01:00:13 +02:00
third_party@72f5f1a9fa chore: update third_party submodule (#9548) 2021-02-19 15:44:22 +01:00
tools chore: align Headers to spec (#10199) 2021-04-19 01:00:13 +02:00
.dlint.json chore: Enforce ban-untagged-todo lint rule (#9135) 2021-01-17 00:32:59 +01:00
.dprintrc.json chore(cli): Upgrade jsonc_parser to 0.17 (#9977) 2021-04-04 07:27:13 -04:00
.editorconfig editorconfig: Don't insert final newline in .out files (#1686) 2019-02-07 11:31:49 -05:00
.gitattributes remove unused git attributes (#7011) 2020-08-10 23:22:45 -04:00
.gitignore tests: new typescript WPT runner (#9269) 2021-01-27 15:06:18 +01:00
.gitmodules chore: remove std directory (#9361) 2021-02-02 12:05:46 +01:00
.rustfmt.toml chore: update copyright to 2021 (#9092) 2021-01-11 18:13:41 +01:00
Cargo.lock op_crates/url: basic url_parse bench (#10245) 2021-04-19 15:42:59 +02:00
Cargo.toml tooling(bench_util): benching and profiling utilities (#10223) 2021-04-18 14:51:48 +02:00
CODE_OF_CONDUCT.md fix(tools): prettier formatting (#6206) 2020-06-09 17:50:41 +02:00
LICENSE.md update copyright to 2021 (#9081) 2021-01-10 21:59:07 -05:00
README.md docs(readme): improve link descriptions (#10083) 2021-04-09 16:29:48 +09:00
Releases.md v1.9.0 2021-04-13 20:11:17 +02:00

Deno

Build Status - Cirrus Twitter handle Discord Chat

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

Features

  • Secure by default. No file, network, or environment access, unless explicitly enabled.
  • Supports TypeScript out of the box.
  • Ships only a single executable file.
  • Built-in utilities like a dependency inspector (deno info) and a code formatter (deno fmt).
  • Set of reviewed standard modules that are guaranteed to work with Deno.

Install

Shell (Mac, Linux):

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

PowerShell (Windows):

iwr https://deno.land/x/install/install.ps1 -useb | 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 a more complex one:

import { serve } from "https://deno.land/std/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

You can find a deeper introduction, examples, and environment setup guides in the manual.

The complete API reference is available at the runtime documentation.

Contributing

We appreciate your help!

To contribute, please read our guidelines.