Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ckreiling/nessie

A friendly DNS client for Gleam programs targeting Erlang
https://github.com/ckreiling/nessie

Last synced: 3 months ago
JSON representation

A friendly DNS client for Gleam programs targeting Erlang

Awesome Lists containing this project

README

        

# nessie

[![Package Version](https://img.shields.io/hexpm/v/nessie)](https://hex.pm/packages/nessie)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/nessie/)

A friendly DNS client for Gleam programs targeting Erlang.

```sh
gleam add nessie
```

```gleam
import nessie
import gleam/io

pub fn main() {
let ipv4_addrs = nessie.lookup_ipv4("gleam.run", nessie.In, [])
io.debug(ipv4_addrs)
}
```

Further documentation can be found at .

## Supported DNS Records

The following is a list of supported DNS record types. If
nessie doesn't currently support a DNS record type you want, feel free to contribute
to this project!

- [x] A
- [x] AAAA
- [x] TXT
- [x] CNAME
- [x] MX
- [x] SOA
- [x] NS
- [ ] PTR
- [ ] SRV
- [ ] CERT
- [ ] DCHID
- [ ] DNAME
- [ ] DNSKEY
- [ ] DS

## What about JavaScript support?

Due to Erlang and JavaScript's fundamentally different approaches
to asynchronous programming (processes & event loops, respectively),
it's not currently possible in Gleam to write a DNS client supporting
both targets.

For more information, see [this Discord thread](https://discord.com/channels/768594524158427167/1224351163797868575).

## Development

```sh
gleam test # Run the tests
gleam shell # Run an Erlang shell
```