mirror of
https://github.com/denoland/deno.git
synced 2024-10-29 08:58:01 -04:00
3197cad0f8
Updates "complex" example in the README.md, which used std/http which will be phased out. Instead use newly stabilized Deno.serveHttp()
105 lines
2.6 KiB
Markdown
105 lines
2.6 KiB
Markdown
# Deno
|
|
|
|
[![Build Status - Cirrus][]][Build status] [![Twitter handle][]][Twitter badge]
|
|
[![Discord Chat](https://img.shields.io/discord/684898665143206084?logo=discord&style=social)](https://discord.gg/deno)
|
|
|
|
<img align="right" src=https://raw.githubusercontent.com/denoland/manual/main/images/deno3.png height="150px">
|
|
|
|
Deno is a _simple_, _modern_ and _secure_ runtime for **JavaScript** and
|
|
**TypeScript** that uses V8 and is built in Rust.
|
|
|
|
### Features
|
|
|
|
- Secure by default. No file, network, or environment access, unless explicitly
|
|
enabled.
|
|
- Supports TypeScript out of the box.
|
|
- Ships only a single executable file.
|
|
- Built-in utilities like a dependency inspector (deno info) and a code
|
|
formatter (deno fmt).
|
|
- Set of reviewed standard modules that are guaranteed to work with
|
|
[Deno](https://deno.land/std/).
|
|
|
|
### Install
|
|
|
|
Shell (Mac, Linux):
|
|
|
|
```sh
|
|
curl -fsSL https://deno.land/x/install/install.sh | sh
|
|
```
|
|
|
|
PowerShell (Windows):
|
|
|
|
```powershell
|
|
iwr https://deno.land/x/install/install.ps1 -useb | iex
|
|
```
|
|
|
|
[Homebrew](https://formulae.brew.sh/formula/deno) (Mac):
|
|
|
|
```sh
|
|
brew install deno
|
|
```
|
|
|
|
[Chocolatey](https://chocolatey.org/packages/deno) (Windows):
|
|
|
|
```powershell
|
|
choco install deno
|
|
```
|
|
|
|
[Scoop](https://scoop.sh/) (Windows):
|
|
|
|
```powershell
|
|
scoop install deno
|
|
```
|
|
|
|
Build and install from source using [Cargo](https://crates.io/crates/deno):
|
|
|
|
```sh
|
|
cargo install deno --locked
|
|
```
|
|
|
|
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:
|
|
|
|
```ts
|
|
const listener = Deno.listen({ port: 8000 });
|
|
console.log("http://localhost:8000/");
|
|
|
|
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"));
|
|
}
|
|
}
|
|
```
|
|
|
|
You can find a deeper introduction, examples, and environment setup guides in
|
|
the [manual](https://deno.land/manual).
|
|
|
|
The complete API reference is available at the runtime
|
|
[documentation](https://doc.deno.land).
|
|
|
|
### Contributing
|
|
|
|
We appreciate your help!
|
|
|
|
To contribute, please read our
|
|
[contributing instructions](https://deno.land/manual/contributing).
|
|
|
|
[Build Status - Cirrus]: https://github.com/denoland/deno/workflows/ci/badge.svg?branch=main&event=push
|
|
[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
|