2019-10-03 12:26:48 -04:00
|
|
|
# Deno
|
2018-05-18 12:25:59 -04:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
[![Build Status - Cirrus][]][Build status] [![Twitter handle][]][Twitter badge]
|
2021-04-09 01:09:08 -04:00
|
|
|
[![Discord Chat](https://img.shields.io/discord/684898665143206084?logo=discord&style=social)](https://discord.gg/deno)
|
2019-03-05 00:01:32 -05:00
|
|
|
|
2021-08-25 09:27:18 -04:00
|
|
|
<img align="right" src="https://deno.land/logo.svg" height="150px" alt="the deno mascot dinosaur standing in the rain">
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
Deno is a _simple_, _modern_ and _secure_ runtime for **JavaScript** and
|
|
|
|
**TypeScript** that uses V8 and is built in Rust.
|
2019-02-21 23:22:44 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
### Features
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
- Secure by default. No file, network, or environment access, unless explicitly
|
|
|
|
enabled.
|
|
|
|
- Supports TypeScript out of the box.
|
|
|
|
- Ships only a single executable file.
|
2021-10-20 14:04:30 -04:00
|
|
|
- [Built-in utilities.](https://deno.land/manual/tools#built-in-tooling)
|
2020-09-29 11:40:17 -04:00
|
|
|
- Set of reviewed standard modules that are guaranteed to work with
|
2020-10-03 16:19:11 -04:00
|
|
|
[Deno](https://deno.land/std/).
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
### Install
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
Shell (Mac, Linux):
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
```sh
|
2022-03-07 19:53:15 -05:00
|
|
|
curl -fsSL https://deno.land/install.sh | sh
|
2020-09-29 11:40:17 -04:00
|
|
|
```
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
PowerShell (Windows):
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
```powershell
|
2022-03-07 19:53:15 -05:00
|
|
|
iwr https://deno.land/install.ps1 -useb | iex
|
2020-09-29 11:40:17 -04:00
|
|
|
```
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
[Homebrew](https://formulae.brew.sh/formula/deno) (Mac):
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
```sh
|
|
|
|
brew install deno
|
|
|
|
```
|
2019-02-19 23:25:52 -05:00
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
[Chocolatey](https://chocolatey.org/packages/deno) (Windows):
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
choco install deno
|
|
|
|
```
|
|
|
|
|
2021-03-15 07:46:08 -04:00
|
|
|
[Scoop](https://scoop.sh/) (Windows):
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
scoop install deno
|
|
|
|
```
|
|
|
|
|
2020-09-29 11:40:17 -04:00
|
|
|
Build and install from source using [Cargo](https://crates.io/crates/deno):
|
|
|
|
|
|
|
|
```sh
|
2021-03-15 07:46:08 -04:00
|
|
|
cargo install deno --locked
|
2020-09-29 11:40:17 -04:00
|
|
|
```
|
|
|
|
|
|
|
|
See
|
|
|
|
[deno_install](https://github.com/denoland/deno_install/blob/master/README.md)
|
|
|
|
and [releases](https://github.com/denoland/deno/releases) for other options.
|
|
|
|
|
|
|
|
### Getting Started
|
|
|
|
|
|
|
|
Try running a simple program:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
deno run https://deno.land/std/examples/welcome.ts
|
|
|
|
```
|
|
|
|
|
|
|
|
Or a more complex one:
|
|
|
|
|
2020-10-06 20:32:56 -04:00
|
|
|
```ts
|
2021-08-12 04:19:02 -04:00
|
|
|
const listener = Deno.listen({ port: 8000 });
|
2020-09-29 11:40:17 -04:00
|
|
|
console.log("http://localhost:8000/");
|
2021-08-12 04:19:02 -04:00
|
|
|
|
|
|
|
for await (const conn of listener) {
|
|
|
|
serve(conn);
|
|
|
|
}
|
|
|
|
|
|
|
|
async function serve(conn: Deno.Conn) {
|
|
|
|
for await (const { respondWith } of Deno.serveHttp(conn)) {
|
|
|
|
respondWith(new Response("Hello world"));
|
|
|
|
}
|
2020-09-29 11:40:17 -04:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-04-09 03:29:48 -04:00
|
|
|
You can find a deeper introduction, examples, and environment setup guides in
|
|
|
|
the [manual](https://deno.land/manual).
|
2020-09-29 11:40:17 -04:00
|
|
|
|
2021-04-09 03:29:48 -04:00
|
|
|
The complete API reference is available at the runtime
|
2020-10-13 11:17:43 -04:00
|
|
|
[documentation](https://doc.deno.land).
|
2020-09-29 11:40:17 -04:00
|
|
|
|
|
|
|
### Contributing
|
|
|
|
|
|
|
|
We appreciate your help!
|
|
|
|
|
2020-12-11 12:43:01 -05:00
|
|
|
To contribute, please read our
|
2021-07-28 14:54:33 -04:00
|
|
|
[contributing instructions](https://deno.land/manual/contributing).
|
2020-09-29 11:40:17 -04:00
|
|
|
|
2021-02-19 09:58:19 -05:00
|
|
|
[Build Status - Cirrus]: https://github.com/denoland/deno/workflows/ci/badge.svg?branch=main&event=push
|
2020-09-29 11:40:17 -04:00
|
|
|
[Build status]: https://github.com/denoland/deno/actions
|
|
|
|
[Twitter badge]: https://twitter.com/intent/follow?screen_name=deno_land
|
|
|
|
[Twitter handle]: https://img.shields.io/twitter/follow/deno_land.svg?style=social&label=Follow
|