2019-01-25 13:40:56 -05:00
|
|
|
<!-- Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -->
|
2018-09-21 12:06:59 -04:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
2019-02-02 18:40:18 -05:00
|
|
|
<head>
|
|
|
|
<title>Deno</title>
|
|
|
|
<link rel="manifest" href="/manifest.json" />
|
|
|
|
<link rel="stylesheet" href="https://unpkg.com/c3@0.6.7/c3.min.css" />
|
|
|
|
<link rel="stylesheet" href="style.css" />
|
|
|
|
<meta
|
|
|
|
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
|
|
|
name="viewport"
|
|
|
|
/>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<main>
|
|
|
|
<img id="logo" src="deno_logo_2.gif" width="150" />
|
|
|
|
<!-- Logo by hashrock https://denolib.github.io/animated-deno-logo/ -->
|
|
|
|
|
2019-02-06 14:05:38 -05:00
|
|
|
<h1>Deno</h1>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
|
|
|
<p>
|
|
|
|
A new way to JavaScript
|
|
|
|
|
|
|
|
<!-- TODO(ry) add the registry badges. -->
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<table>
|
|
|
|
<tr>
|
|
|
|
<th></th>
|
|
|
|
<th>Linux & Mac</th>
|
|
|
|
<th>Windows</th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2019-02-03 12:49:38 -05:00
|
|
|
<th>
|
|
|
|
<a href="https://github.com/denoland/deno">deno</a>
|
|
|
|
</th>
|
2019-02-02 18:40:18 -05:00
|
|
|
<td>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a class="badge" href="https://travis-ci.com/denoland/deno">
|
|
|
|
<img src="https://travis-ci.com/denoland/deno.svg?branch=master"/>
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</td>
|
|
|
|
<td>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a class="badge" href="https://ci.appveyor.com/project/deno/deno">
|
|
|
|
<img src="https://ci.appveyor.com/api/projects/status/yel7wtcqwoy0to8x/branch/master?svg=true"/>
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2019-02-03 12:49:38 -05:00
|
|
|
<th>
|
|
|
|
<a href="https://github.com/denoland/deno_std">deno_std</a>
|
|
|
|
</th>
|
2019-02-02 18:40:18 -05:00
|
|
|
<td colspan="2">
|
|
|
|
<a
|
|
|
|
class="badge"
|
|
|
|
href="https://dev.azure.com/denoland/deno_std/_build?definitionId=2"
|
2019-02-03 12:49:38 -05:00
|
|
|
>
|
|
|
|
<img src="https://dev.azure.com/denoland/deno_std/_apis/build/status/denoland.deno_std?branchName=master"/>
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>
|
|
|
|
<a href="https://github.com/denoland/deno_install">deno_install</a>
|
|
|
|
</th>
|
|
|
|
<td>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a class="badge" href="https://travis-ci.com/denoland/deno_install">
|
|
|
|
<img src="https://travis-ci.com/denoland/deno_install.svg?branch=master"/>
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<a
|
|
|
|
class="badge"
|
|
|
|
href="https://ci.appveyor.com/project/deno/deno-install"
|
2019-02-03 12:49:38 -05:00
|
|
|
>
|
|
|
|
<img src="https://ci.appveyor.com/api/projects/status/gtekeaf7r60xa896?branch=master&svg=true"/>
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
2019-02-03 12:49:38 -05:00
|
|
|
<th>
|
|
|
|
<a href="https://github.com/denoland/registry">registry</a>
|
|
|
|
</th>
|
2019-02-02 18:40:18 -05:00
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h2 id="install"><a href="#install">#</a>Install</h2>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-06 14:05:38 -05:00
|
|
|
<p>With Shell</p>
|
2019-02-03 12:49:38 -05:00
|
|
|
<pre>curl -fL https://deno.land/x/install/install.sh | sh</pre>
|
2019-02-06 14:05:38 -05:00
|
|
|
<p>With PowerShell</p>
|
2019-02-03 12:49:38 -05:00
|
|
|
<pre>iex (iwr https://deno.land/x/install/install.ps1)</pre>
|
2018-12-18 18:13:01 -05:00
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h2 id="mini-tutorial"><a href="#mini-tutorial">#</a>Mini-tutorial</h2>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-06 14:05:38 -05:00
|
|
|
<p>Try a Deno program. This one serves a local directory in HTTP.</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<pre>
|
2018-12-18 18:13:01 -05:00
|
|
|
alias file_server="deno \
|
2019-01-13 15:52:42 -05:00
|
|
|
https://deno.land/x/http/file_server.ts --allow-net"
|
2019-02-03 12:49:38 -05:00
|
|
|
</pre>
|
2018-12-18 18:13:01 -05:00
|
|
|
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>Run it:</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<pre>
|
2018-12-18 18:13:01 -05:00
|
|
|
% file_server .
|
2019-01-13 15:52:42 -05:00
|
|
|
Downloading https://deno.land/x/http/file_server.ts...
|
2018-12-18 18:13:01 -05:00
|
|
|
[...]
|
|
|
|
HTTP server listening on http://0.0.0.0:4500/
|
2019-02-03 12:49:38 -05:00
|
|
|
</pre>
|
|
|
|
<p>And if you ever want to upgrade to the latest published version:</p>
|
|
|
|
<pre>file_server --reload</pre>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h2 id="dig-in"><a href="#dig-in">#</a>Dig in...</h2>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno/blob/master/Docs.md">
|
|
|
|
Documentation
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>
|
|
|
|
<a href="typedoc/index.html">API Reference</a>
|
|
|
|
</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
|
|
|
<p>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denolib/awesome-deno">
|
|
|
|
Links to other Deno resources.
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
</p>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h2 id="benchmarks"><a href="#benchmarks">#</a>Continuous Benchmarks</h2>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>These plots are updated on every commit to</p>
|
|
|
|
<p>
|
|
|
|
<a href="https://github.com/denoland/deno">master branch</a>
|
|
|
|
</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="exec-time"><a href="#exec-time">#</a>Execution time</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>This shows how much time total it takes to run a few simple deno programs:</p>
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/002_hello.ts">
|
|
|
|
tests/002_hello.ts
|
|
|
|
</a>
|
|
|
|
<p>and</p>
|
|
|
|
<p>
|
|
|
|
<a
|
|
|
|
href="https://github.com/denoland/deno/blob/master/tests/003_relative_import.ts"
|
|
|
|
>
|
|
|
|
tests/003_relative_import.ts
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
For deno to execute typescript, it must first compile it to JS. A warm
|
|
|
|
startup is when deno has a cached JS output already, so it should be fast
|
|
|
|
because it bypasses the TS compiler. A cold startup is when deno must
|
|
|
|
compile from scratch.
|
|
|
|
</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<div id="exec-time-chart"></div>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="throughput"><a href="#throughput">#</a>Throughput</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
|
|
|
|
<p>Time it takes to pipe a certain amount of data through Deno.</p>
|
|
|
|
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/echo_server.ts">
|
|
|
|
echo_server.ts
|
|
|
|
</a>
|
|
|
|
<p>and</p>
|
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/cat.ts">
|
|
|
|
cat.ts
|
|
|
|
</a>
|
|
|
|
<p>Smaller is better.</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
|
|
|
|
<div id="throughput-chart"></div>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="req-per-sec"><a href="#req-per-sec">#</a>Req/Sec</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Tests HTTP server performance. 10 keep-alive connections do as many
|
|
|
|
hello-world requests as possible. Bigger is better.
|
|
|
|
</p>
|
|
|
|
|
2019-02-02 18:40:18 -05:00
|
|
|
<ul>
|
|
|
|
<!-- TODO rename "deno" to "deno_tcp". -->
|
|
|
|
<li>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tests/http_bench.ts">
|
|
|
|
deno
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
is a fake http server that doesn't parse HTTP. It is comparable to
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tools/node_tcp.js">
|
|
|
|
node_tcp
|
|
|
|
</a>
|
|
|
|
.
|
2019-02-02 18:40:18 -05:00
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno_std/blob/master/http/http_bench.ts">
|
|
|
|
deno_net_http
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
is a web server written in TypeScript. It is comparable to
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tools/node_http.js">
|
|
|
|
node_http
|
|
|
|
</a>
|
|
|
|
.
|
2019-02-02 18:40:18 -05:00
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
2019-02-03 12:49:38 -05:00
|
|
|
<a href="https://github.com/denoland/deno/blob/master/tools/hyper_hello.rs">
|
|
|
|
hyper
|
|
|
|
</a>
|
2019-02-02 18:40:18 -05:00
|
|
|
is a Rust HTTP server and represents an upper bound.
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<div id="req-per-sec-chart"></div>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="size"><a href="#size">#</a>Executable size</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>deno ships only a single binary. We track its size here.</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<div id="binary-size-chart"></div>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="threads"><a href="#threads">#</a>Thread count</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>How many threads various programs use.</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<div id="thread-count-chart"></div>
|
|
|
|
|
2019-02-03 13:24:33 -05:00
|
|
|
<h3 id="syscalls"><a href="#syscalls">#</a>Syscall count</h3>
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>How many total syscalls are performed when executing a given script.</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
<div id="syscall-count-chart"></div>
|
|
|
|
|
2019-02-03 12:49:38 -05:00
|
|
|
<p>
|
|
|
|
<a href="./all_benchmark.html">Historical benchmark data</a>
|
|
|
|
</p>
|
2019-02-02 18:40:18 -05:00
|
|
|
</main>
|
|
|
|
|
|
|
|
<script src="https://unpkg.com/d3@5.7.0/dist/d3.min.js"></script>
|
|
|
|
<script src="https://unpkg.com/c3@0.6.7/c3.min.js"></script>
|
|
|
|
|
|
|
|
<script type="module">
|
|
|
|
import { drawCharts } from "./app.js";
|
|
|
|
|
|
|
|
drawCharts("recent.json");
|
|
|
|
</script>
|
|
|
|
</body>
|
2018-09-21 12:06:59 -04:00
|
|
|
</html>
|