1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 17:49:08 -05:00
denoland-deno/website/index.html
2018-12-31 19:38:27 +00:00

143 lines
4.6 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>
<img src="deno_logo.png" width=150 />
<h1>Deno</h1>
<table>
<tr>
<th>Linux &amp; Mac</th>
<th>Windows</th>
</tr>
<tr>
<td>
<img src="https://travis-ci.com/denoland/deno.svg?branch=master"/>
</td>
<td>
<img src="https://ci.appveyor.com/api/projects/status/yel7wtcqwoy0to8x/branch/master?svg=true"/>
</td>
</tr>
</table>
<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><a href="https://github.com/denoland/deno_std">Deno standard modules</a>
<h2>Getting started</h2>
<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>
<h2>Benchmarks</h2>
<h3>Execution time</h3>
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>
<h3>Throughput</h3>
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>
<h3>Req/Sec</h3>
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>
<h3>Executable size</h3>
deno ships only a single binary. We track its size here.
<div id="binary-size-chart"></div>
<h3>Thread count</h3>
How many threads various programs use.
<div id="thread-count-chart"></div>
<h3>Syscall count</h3>
How many total syscalls are performed when executing a given script.
<div id="syscall-count-chart"></div>
<h3>Travis</h3>
How long for Travis CI to return a green status for pull requests.
<div id="travis-compile-time-chart"></div>
<h3>References</h3>
<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>