2018-05-18 16:25:59 +00:00
|
|
|
# deno
|
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
| **Linux & Mac** | **Windows** |
|
|
|
|
| :------------------------: | :------------------------: |
|
2018-10-04 07:58:28 +00:00
|
|
|
| [![][tci badge]][tci link] | [![][avy badge]][avy link] |
|
2018-08-02 17:27:57 +00:00
|
|
|
|
2019-01-28 16:54:09 +00:00
|
|
|
## A new way to JavaScript.
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-12-01 06:36:48 +00:00
|
|
|
- Supports TypeScript out of the box. Uses a recent version of V8. That is, it's
|
|
|
|
very modern JavaScript.
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- No `package.json`. No npm. Not explicitly compatible with Node.
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- Imports reference source code URLs only.
|
2018-10-05 17:35:03 +00:00
|
|
|
|
|
|
|
```typescript
|
|
|
|
import { test } from "https://unpkg.com/deno_testing@0.0.5/testing.ts";
|
|
|
|
import { log } from "./util.ts";
|
|
|
|
```
|
|
|
|
|
2018-05-30 15:11:15 +00:00
|
|
|
Remote code is fetched and cached on first execution, and never updated until
|
2018-06-08 08:38:47 +00:00
|
|
|
the code is run with the `--reload` flag. (So, this will still work on an
|
2018-05-30 15:11:15 +00:00
|
|
|
airplane. See `~/.deno/src` for details on the cache.)
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- File system and network access can be controlled in order to run sandboxed
|
|
|
|
code. Defaults to read-only file system access and no network access. Access
|
|
|
|
between V8 (unprivileged) and Rust (privileged) is only done via serialized
|
|
|
|
messages defined in this
|
|
|
|
[flatbuffer](https://github.com/denoland/deno/blob/master/src/msg.fbs). This
|
|
|
|
makes it easy to audit. To enable write access explicitly use `--allow-write`
|
|
|
|
and `--allow-net` for network access.
|
|
|
|
|
|
|
|
- Single executable:
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-10-04 07:58:28 +00:00
|
|
|
```
|
2018-11-08 18:38:20 +00:00
|
|
|
> ls -lh target/release/deno
|
|
|
|
-rwxr-xr-x 1 rld staff 48M Aug 2 13:24 target/release/deno
|
|
|
|
> otool -L target/release/deno
|
|
|
|
target/release/deno:
|
2018-08-02 17:27:57 +00:00
|
|
|
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)
|
|
|
|
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
|
|
|
|
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 58286.51.6)
|
|
|
|
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
|
|
|
|
>
|
2018-10-04 07:58:28 +00:00
|
|
|
```
|
2018-05-29 03:52:22 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- Always dies on uncaught errors.
|
2018-05-29 07:20:04 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- [Aims to support top-level `await`.](https://github.com/denoland/deno/issues/471)
|
2018-05-29 07:20:04 +00:00
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
- Aims to be browser compatible.
|
2018-05-29 07:20:04 +00:00
|
|
|
|
2019-01-10 16:23:23 +00:00
|
|
|
See the website for more info [deno.land](https://deno.land).
|
|
|
|
|
2018-09-01 00:55:04 +00:00
|
|
|
## Install
|
|
|
|
|
2019-01-27 15:16:47 +00:00
|
|
|
With Shell:
|
2018-09-22 12:43:44 +00:00
|
|
|
|
2018-09-01 00:55:04 +00:00
|
|
|
```
|
2019-01-27 15:16:47 +00:00
|
|
|
curl -L https://deno.land/x/install/install.sh | bash
|
2018-09-01 00:55:04 +00:00
|
|
|
```
|
|
|
|
|
2018-10-18 06:05:33 +00:00
|
|
|
With PowerShell:
|
2018-09-22 12:43:44 +00:00
|
|
|
|
|
|
|
```powershell
|
2018-11-16 23:51:06 +00:00
|
|
|
iex (iwr https://deno.land/x/install/install.ps1)
|
2018-09-22 12:43:44 +00:00
|
|
|
```
|
|
|
|
|
2018-10-04 09:01:21 +00:00
|
|
|
_Note: Depending on your security settings, you may have to run
|
|
|
|
`Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` first to allow downloaded
|
|
|
|
scripts to be executed._
|
2018-09-22 12:43:44 +00:00
|
|
|
|
2019-01-05 21:11:57 +00:00
|
|
|
With [Scoop](https://scoop.sh/):
|
|
|
|
|
|
|
|
```
|
|
|
|
scoop install deno
|
|
|
|
```
|
|
|
|
|
2018-09-22 12:43:44 +00:00
|
|
|
Try it:
|
2018-10-04 09:01:21 +00:00
|
|
|
|
2018-09-22 12:43:44 +00:00
|
|
|
```
|
2018-11-11 13:54:38 +00:00
|
|
|
> deno https://deno.land/thumb.ts
|
2018-09-22 12:43:44 +00:00
|
|
|
```
|
|
|
|
|
2019-01-10 16:23:23 +00:00
|
|
|
See [deno_install](https://github.com/denoland/deno_install) for more
|
|
|
|
installation methods..
|
2018-10-04 07:58:28 +00:00
|
|
|
|
|
|
|
<!-- prettier-ignore -->
|
|
|
|
[avy badge]: https://ci.appveyor.com/api/projects/status/yel7wtcqwoy0to8x?branch=master&svg=true
|
|
|
|
[avy link]: https://ci.appveyor.com/project/deno/deno
|
|
|
|
[tci badge]: https://travis-ci.com/denoland/deno.svg?branch=master
|
|
|
|
[tci link]: https://travis-ci.com/denoland/deno
|