Skip to content

Commit

Permalink
README embetterments
Browse files Browse the repository at this point in the history
• Some formatting
• Specify MSRV
• Mention build tips, such as release mode and man page
  • Loading branch information
ogham committed Oct 19, 2020
1 parent 69b73e7 commit 921cc62
Showing 1 changed file with 39 additions and 18 deletions.
57 changes: 39 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,25 @@
# dog [![Build status](https://travis-ci.org/ogham/dog.svg)](https://travis-ci.org/ogham/dog)
<div align="center">
<h1>dog</h1>

Dogs _can_ look up!
[dog](https://dns.lookup.dog/) is a command-line DNS client.

<a href="https://travis-ci.org/github/ogham/dog">
<img src="https://travis-ci.org/ogham/dog.svg?branch=master" alt="Build status" />
</a>

**dog** is a command-line DNS client.
It has colourful output, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.
<a href="https://saythanks.io/to/ogham%40bsago.me">
<img src="https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg" alt="Say thanks!" />
</a>
</div>

![A screenshot of dog making a DNS request](dog-screenshot.png)

## Screenshots
---

![A screenshot of dog being used](dog-screenshot.png)
Dogs _can_ look up!

**dog** is a command-line DNS client, like `dig`.
It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.

## Examples

Expand All @@ -19,8 +29,9 @@ It has colourful output, supports the DNS-over-TLS and DNS-over-HTTPS protocols,
dog example.net MX @1.1.1.1 -T ...using TCP rather than UDP
dog -q example.net -t MX -n 1.1.1.1 -T As above, but using explicit arguments

---

## Options
## Command-line options

### Query options

Expand Down Expand Up @@ -52,6 +63,8 @@ It has colourful output, supports the DNS-over-TLS and DNS-over-HTTPS protocols,
--time Print how long the response took to arrive


---

## Installation

Installing dog requires building it from source.
Expand All @@ -60,12 +73,25 @@ Installing dog requires building it from source.
### Compilation

dog is written in [Rust](https://www.rust-lang.org).
You will need a Rust toolchain installed in order to compile it.
You will need rustc version 1.42.0 or higher.
The recommended way to install Rust for development is from the [official download page](https://www.rust-lang.org/tools/install), using rustup.

To build, download the source code and run:

cargo build --release
$ cargo build
$ cargo test

And the binary will be present in `target/release/dog`.
- The [just](https://github.com/casey/just) command runner can be used to run some helpful development commands, in a manner similar to `make`.
Run `just --tasks` to get an overview of what’s available.

- If you are compiling a copy for yourself, be sure to run `cargo build --release` or `just build-release` to benefit from release-mode optimisations.
Copy the resulting binary, which will be in the `target/release` directory, into a folder in your `$PATH`.
`/usr/local/bin` is usually a good choice.

- To compile and install the manual pages, you will need [pandoc](https://pandoc.org/).
The `just man` command will compile the Markdown into manual pages, which it will place in the `target/man` directory.
To use them, copy them into a directory that `man` will read.
`/usr/local/share/man` is usually a good choice.


### Testing
Expand All @@ -75,19 +101,14 @@ If you have a copy installed, you can run:

just xtests

And it will test the compiled binary by making DNS requests over the network, checking that dog returns results and does not crash.


### Minimum supported Rust version

Currently, dog is built and tested against the most recent stable Rust version, with no compatibility guarantees for any older versions.
Specsheet will test the compiled binary by making DNS requests over the network, checking that dog returns results and does not crash.

Once dog is more mature and development has settled down, a minimum supported Rust version will be chosen.

---

## Documentation

For documentation on how to use dog, see the website: <https://dns.lookup.dog>
For documentation on how to use dog, see the website: <https://dns.lookup.dog/>


## See also
Expand Down

0 comments on commit 921cc62

Please sign in to comment.