forked from oven-sh/bun
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add documentation * Tweaks * Fixes * Rearrange * Update
- Loading branch information
1 parent
5929dae
commit f543005
Showing
55 changed files
with
8,660 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{% callout %} | ||
**Note** — Bun provides a browser- and Node.js-compatible [console](https://developer.mozilla.org/en-US/docs/Web/API/console) global. This page only documents Bun-native APIs. | ||
{% /callout %} | ||
|
||
In Bun, the `console` object can be used as an `AsyncIterable` to sequentially read lines from `process.stdin`. | ||
|
||
```ts | ||
for await (const line of console) { | ||
console.log(line); | ||
} | ||
``` | ||
|
||
This is useful for implementing interactive programs, like the following addition calculator. | ||
|
||
```ts#adder.ts | ||
console.log(`Let's add some numbers!`); | ||
console.write(`Count: 0\n> `); | ||
|
||
let count = 0; | ||
for await (const line of console) { | ||
count += Number(line); | ||
console.write(`Count: ${count}\n> `); | ||
} | ||
``` | ||
|
||
To run the file: | ||
|
||
```bash | ||
$ bun adder.ts | ||
Let's add some numbers! | ||
Count: 0 | ||
> 5 | ||
Count: 5 | ||
> 5 | ||
Count: 10 | ||
> 5 | ||
Count: 15 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
Bun implements the `node:dns` module. | ||
|
||
```ts | ||
import * as dns from "node:dns"; | ||
|
||
const addrs = await dns.promises.resolve4("bun.sh", { ttl: true }); | ||
console.log(addrs); | ||
// => [{ address: "172.67.161.226", family: 4, ttl: 0 }, ...] | ||
``` | ||
|
||
<!-- | ||
## `Bun.dns` - lookup a domain | ||
`Bun.dns` includes utilities to make DNS requests, similar to `node:dns`. As of Bun v0.5.0, the only implemented function is `dns.lookup`, though more will be implemented soon. | ||
You can lookup the IP addresses of a hostname by using `dns.lookup`. | ||
```ts | ||
import { dns } from "bun"; | ||
const [{ address }] = await dns.lookup("example.com"); | ||
console.log(address); // "93.184.216.34" | ||
``` | ||
If you need to limit IP addresses to either IPv4 or IPv6, you can specify the `family` as an option. | ||
```ts | ||
import { dns } from "bun"; | ||
const [{ address }] = await dns.lookup("example.com", { family: 6 }); | ||
console.log(address); // "2606:2800:220:1:248:1893:25c8:1946" | ||
``` | ||
Bun supports three backends for DNS resolution: | ||
- `c-ares` - This is the default on Linux, and it uses the [c-ares](https://c-ares.org/) library to perform DNS resolution. | ||
- `system` - Uses the system's non-blocking DNS resolver, if available. Otherwise, falls back to `getaddrinfo`. This is the default on macOS, and the same as `getaddrinfo` on Linux. | ||
- `getaddrinfo` - Uses the POSIX standard `getaddrinfo` function, which may cause performance issues under concurrent load. | ||
You can choose a particular backend by specifying `backend` as an option. | ||
```ts | ||
import { dns } from "bun"; | ||
const [{ address, ttl }] = await dns.lookup("example.com", { | ||
backend: "c-ares" | ||
}); | ||
console.log(address); // "93.184.216.34" | ||
console.log(ttl); // 21237 | ||
``` | ||
Note: the `ttl` property is only accurate when the `backend` is c-ares. Otherwise, `ttl` will be `0`. | ||
This was added in Bun v0.5.0. --> |
Oops, something went wrong.