deno/website/index.html
2018-12-18 19:05:48 -05:00

124 lines
4.1 KiB
HTML

<!-- Copyright 2018 the Deno authors. All rights reserved. MIT license. -->
<!DOCTYPE html>
<html>
<head>
<title>Deno</title>
<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>
<h1>Deno</h1>
<p>Deno is a program for executing JavaScript and TypeScript outside of the
web browser.
<p> <a href="https://github.com/denoland/deno">github.com/denoland/deno</a>
<p> <a href="https://github.com/denoland/deno/blob/master/Docs.md">Documentation</a>
<p> <a href="typedoc/index.html">API Reference</a>
<p>Install Deno into ~/.deno/bin
<pre>
curl -L https://deno.land/x/install/install.py | python
export PATH=$HOME/.deno/bin:$PATH
</pre>
Try a Deno program. Install by bash alias.
This one serves a local directory in HTTP.
<pre>
alias file_server="deno \
https://deno.land/x/net/file_server.ts --allow-net"
</pre>
Run it:
<pre>
% file_server .
Downloading https://deno.land/x/net/file_server.ts...
[...]
HTTP server listening on http://0.0.0.0:4500/
</pre>
And if you ever want to upgrade to the latest published version:
<pre>
file_server --reload
</pre>
<a href="https://deno.land/x/">Other Deno modules are served here.</a>
<h2>Execution time</h2>
This shows how much time total it takes to run a few simple deno programs:
<a href="https://github.com/denoland/deno/blob/master/tests/002_hello.ts">tests/002_hello.ts</a>
and
<a href="https://github.com/denoland/deno/blob/master/tests/003_relative_import.ts">tests/003_relative_import.ts</a>.
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.
<div id="exec-time-chart"></div>
<h2>Throughput</h2>
Time it takes to pipe a certain amount of data through Deno.
<a href="https://github.com/denoland/deno/blob/master/tests/echo_server.ts">echo_server.ts</a>
and
<a href="https://github.com/denoland/deno/blob/master/tests/cat.ts">cat.ts</a>
Smaller is better.
<div id="throughput-chart"></div>
<h2>Req/Sec</h2>
Tests HTTP server performance. 10 keep-alive connections
do as many hello-world requests as possible. Bigger is better.
<ul>
<!-- TODO rename "deno" to "deno_tcp". -->
<li><a
href="https://github.com/denoland/deno/blob/master/tests/http_bench.ts">deno</a>
is a fake http server that doesn't parse HTTP. It is comparable to <a
href="https://github.com/denoland/deno/blob/master/tools/node_tcp.js">node_tcp</a>.
<li><a
href="https://github.com/denoland/deno_net/blob/master/http_bench.ts">deno_net_http</a>
is a web server written in TypeScript. It
is comparable to <a
href="https://github.com/denoland/deno/blob/master/tools/node_http.js">node_http</a>.
<li><a
href="https://github.com/denoland/deno/blob/master/tools/hyper_hello.rs">hyper</a>
is a Rust HTTP server and represents an upper bound.
</ul>
<div id="req-per-sec-chart"></div>
<h2>Executable size</h2>
deno ships only a single binary. We track its size here.
<div id="binary-size-chart"></div>
<h2>Thread count</h2>
How many threads various programs use.
<div id="thread-count-chart"></div>
<h2>Syscall count</h2>
How many total syscalls are performed when executing a given script.
<div id="syscall-count-chart"></div>
<h2>Travis</h2>
How long for Travis CI to return a green status for pull requests.
<div id="travis-compile-time-chart"></div>
<h2>References</h2>
<p> <a href="./all_benchmark.html">All benchmark data</a>
</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>
</html>