A modern runtime for JavaScript and TypeScript.
Go to file
David Sherret 4f80d83774
feat(unstable): single checksum per JSR package in the lockfile (#22421)
This changes the lockfile to not store JSR specifiers in the "remote"
section. Instead a single JSR integrity is stored per package in the
lockfile, which is a hash of the version's `x.x.x_meta.json` file, which
contains hashes for every file in the package. The hashes in this file
are then compared against when loading.

Additionally, when using `{ "vendor": true }` in a deno.json, the files
can be modified without causing lockfile errors—the checksum is only
checked when copying into the vendor folder and not afterwards
(eventually we should add this behaviour for non-jsr specifiers as
well). As part of this change, the `vendor` folder creation is not
always automatic in the LSP and running an explicit cache command is
necessary. The code required to track checksums in the LSP would have
been too complex for this PR, so that all goes through deno_graph now.
The vendoring is still automatic when running from the CLI.
2024-02-15 14:49:35 -05:00
.cargo feat: bring back WebGPU (#20812) 2023-12-09 01:19:16 +01:00
.devcontainer fix(devcontainer): moved settings to customizations/vscode (#21512) 2023-12-19 13:29:39 +01:00
.github chore: forward v1.40.5 release commit to main (#22424) 2024-02-15 12:15:36 +05:30
bench_util chore: forward v1.40.5 release commit to main (#22424) 2024-02-15 12:15:36 +05:30
cli feat(unstable): single checksum per JSR package in the lockfile (#22421) 2024-02-15 14:49:35 -05:00
ext chore: forward v1.40.5 release commit to main (#22424) 2024-02-15 12:15:36 +05:30
runtime chore: forward v1.40.5 release commit to main (#22424) 2024-02-15 12:15:36 +05:30
test_util feat(unstable): single checksum per JSR package in the lockfile (#22421) 2024-02-15 14:49:35 -05:00
tests feat(unstable): single checksum per JSR package in the lockfile (#22421) 2024-02-15 14:49:35 -05:00
tools chore(release): update asset count for denort (#22425) 2024-02-15 13:40:24 +05:30
.dlint.json chore: update dlint to v0.37.0 for GitHub Actions (#17295) 2023-01-16 17:17:18 +01:00
.dprint.json chore: move test_util/std to tests/util/std (#22402) 2024-02-13 09:22:49 -07:00
.editorconfig chore: modify editorconfig settings (#21533) 2023-12-12 12:43:41 +09:00
.gitattributes chore: move cli/tests/ -> tests/ (#22369) 2024-02-10 20:22:13 +00:00
.gitignore chore: move test_ffi and test_nap to tests/ [WIP] (#22394) 2024-02-12 13:46:50 -07:00
.gitmodules chore: move test_util/std to tests/util/std (#22402) 2024-02-13 09:22:49 -07:00
.rustfmt.toml chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
Cargo.lock feat(unstable): single checksum per JSR package in the lockfile (#22421) 2024-02-15 14:49:35 -05:00
Cargo.toml feat(unstable): single checksum per JSR package in the lockfile (#22421) 2024-02-15 14:49:35 -05:00
LICENSE.md chore: update LICENSE.md to 2024 (#21833) 2024-01-06 19:14:38 -05:00
README.md chore: Fix typo in README (#21354) 2023-11-27 21:43:35 +00:00
Releases.md chore: forward v1.40.5 release commit to main (#22424) 2024-02-15 12:15:36 +05:30
rust-toolchain.toml chore: update to Rust 1.76 (#22376) 2024-02-12 03:00:33 +00:00

Deno

Twitter badge Discord badge YouTube badge

the deno mascot dinosaur standing in the rain

Deno (/ˈdiːnoʊ/, pronounced dee-no) is a JavaScript, TypeScript, and WebAssembly runtime with secure defaults and a great developer experience. It's built on V8, Rust, and Tokio.

Learn more about the Deno runtime in the documentation.

Installation

Install the Deno runtime on your system using one of the commands below. Note that there are a number of ways to install Deno - a comprehensive list of installation options can be found here.

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

Build and install from source

Complete instructions for building Deno from source can be found in the manual here.

Your first Deno program

Deno can be used for many different applications, but is most commonly used to build web servers. Create a file called server.ts and include the following TypeScript code:

Deno.serve((_req: Request) => {
  return new Response("Hello, world!");
});

Run your server with the following command:

deno run --allow-net server.ts

This should start a local web server on http://localhost:8000.

Learn more about writing and running Deno programs in the docs.

Additional resources

Contributing

We appreciate your help! To contribute, please read our contributing instructions.