0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-03-03 09:31:22 -05:00
A modern runtime for JavaScript and TypeScript. https://deno.com/
Find a file
Bartek Iwańczuk e9edd7e14d
refactor: Rewrite Inspector implementation (#10725)
This commit refactors implementation of inspector.

The intention is to be able to move inspector implementation to "deno_core".

Following things were done to make that possible:

* "runtime/inspector.rs" was split into "runtime/inspector/mod.rs"
and "runtime/inspector/server.rs", separating inspector implementation
from Websocket server implementation.

* "DenoInspector" was renamed to "JsRuntimeInspector" and reference to "server"
was removed from the structure, making it independent of Websocket server
used to connect to Chrome Devtools.

* "WebsocketSession" was renamed to "InspectorSession" and rewritten in such
a way that it's not tied to Websockets anymore; instead it accepts a pair
of "proxy" channel ends that allow to integrate the session with different
"transports".

* "InspectorSession" was renamed to "LocalInspectorSession" to better indicate
that it's an "in-memory" session and doesn't require Websocket server. It was
also rewritten in such a way that it uses "InspectorSession" from previous point
instead of reimplementing "v8::inspector::ChannelImpl" trait; this is done by using
the "proxy" channels to communicate with the V8 session.

Consequently "LocalInspectorSession" is now a frontend to "InspectorSession". This
introduces a small inconvenience that awaiting responses for "LocalInspectorSession" requires
to concurrently poll worker's event loop. This arises from the fact that "InspectorSession"
is now owned by "JsRuntimeInspector", which in turn is owned by "Worker" or "WebWorker".
To ease this situation "Worker::with_event_loop" helper method was added, that takes
a future and concurrently polls it along with the event loop (using "tokio::select!" macro
inside a loop).
2021-05-26 17:47:33 +02:00
.cargo Statically link the C runtime library on Windows (#4469) 2020-03-23 20:31:29 +01:00
.github chore(lsp): provide test for lsp deadlock issue (#10679) 2021-05-21 07:35:37 +10:00
bench_util cleanup(bench_util): use Extensions for setup (#10737) 2021-05-21 15:46:26 +02:00
cli refactor: Rewrite Inspector implementation (#10725) 2021-05-26 17:47:33 +02:00
core refactor(core): move ModuleMap to separate RefCell (#10656) 2021-05-19 20:53:43 +02:00
docs docs: fix misspelling (#10683) 2021-05-19 14:22:04 +10:00
extensions fix(extension/file): update File constructor following the spec (#10760) 2021-05-25 22:35:17 +09:00
runtime refactor: Rewrite Inspector implementation (#10725) 2021-05-26 17:47:33 +02:00
serde_v8 fix(serde_v8): remove intentional deserialization error on non-utf8 strings (#10156) 2021-05-19 20:45:48 +02:00
test_plugin cleanup(test_plugin): use else if statement (#10718) 2021-05-25 15:01:49 +02:00
test_util chore: update wpt 2021-05-23 15:16:42 +02:00
third_party@6c449eaecb chore: update deno_lint binary used in CI to v0.5.0 (#10652) 2021-05-18 17:24:01 +02:00
tools fix(extension/file): update File constructor following the spec (#10760) 2021-05-25 22:35:17 +09:00
.dlint.json chore: Enforce ban-untagged-todo lint rule (#9135) 2021-01-17 00:32:59 +01:00
.dprint.json chore: upgrade dprint 0.13.1 to fix CI. (#10513) 2021-05-06 13:22:24 +09: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 flamebench: streamline profiling benches (#10121) 2021-04-26 16:41:53 +02: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 feat(extensions): BroadcastChannel WPT conformance 2021-05-23 15:16:42 +02:00
Cargo.toml feat(extensions): add BroadcastChannel 2021-05-23 15:16:42 +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 1.10.2 2021-05-17 17:34:45 +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.