Skip to content

Commit

Permalink
chore: revamp README
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-karan committed Jul 2, 2024
1 parent a63ff6e commit 7ad134e
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 10 deletions.
100 changes: 90 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,108 @@
<p align="center">
🐶 <i>Command-line DNS client for humans</i>
<br/>
<a href="https://doggo.mrkaran.dev">doggo.mrkaran.dev</a>
</p>
<p align="center">
<a href="https://doggo.mrkaran.dev/" target="_blank">Web Interface</a>
·
<a href="https://doggo.mrkaran.dev/docs/" target="_blank">Documentation</a>
</p>
<img src="www/static/doggo.png" alt="doggo CLI usage">
</p>


---

**doggo** is a modern command-line DNS client (like _dig_) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well.

It's totally inspired from [dog](https://github.com/ogham/dog/) which is written in Rust. I wanted to add some features to it but since I don't know Rust, I found it as a nice opportunity
to experiment with writing a DNS Client from scratch in `Go` myself. Hence the name `dog` +`go` => **doggo**.
It's totally inspired by [dog](https://github.com/ogham/dog/) which is written in Rust. I wanted to add some features to it but since I don't know Rust, I found it as a nice opportunity to experiment with writing a DNS Client from scratch in `Go` myself. Hence the name `dog` + `go` => **doggo**.

## Installation

### Easy Install (Recommended)

```shell
curl -sS https://raw.githubusercontent.com/mr-karan/doggo/main/install.sh | sh
```

### Package Managers

- Homebrew: `brew install doggo`
- Arch Linux: `yay -S doggo-bin`
- Scoop (Windows): `scoop install doggo`

### Binary Install

You can download pre-compiled binaries for various operating systems and architectures from the [Releases](https://github.com/mr-karan/doggo/releases) page.

### Go Install

If you have Go installed on your system, you can use the `go install` command:

```shell
go install github.com/mr-karan/doggo/cmd/doggo@latest
```

The binary will be available at `$GOPATH/bin/doggo`.

### Docker

```shell
docker pull ghcr.io/mr-karan/doggo:latest
docker run ghcr.io/mr-karan/doggo:latest example.com
```

For more installation options, including binary downloads and Docker images, please refer to the [full installation guide](https://doggo.mrkaran.dev/docs/intro/installation/).

## Quick Start

Here are some quick examples to get you started with doggo:

```shell
# Simple DNS lookup
doggo example.com

# Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9

# Use DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query

# JSON output for scripting
doggo example.com --json | jq '.responses[0].answers[].address'

# Reverse DNS lookup
doggo --reverse 8.8.8.8 --short
```

## Features

- Human-readable output with color-coded and tabular format
- JSON output support for easy scripting and parsing
- Multiple transport protocols: DoH, DoT, DoQ, TCP, UDP, DNSCrypt
- Support for `ndots` and `search` configurations
- Multiple resolver support with customizable query strategies
- IPv4 and IPv6 support
- Web interface available
- Shell completions for `zsh` and `fish`
- Reverse DNS lookups
- Flexible query options including various DNS flags
- Debug mode for troubleshooting
- Response time measurement
- Cross-platform support

## Documentation

For comprehensive documentation, including detailed usage instructions, configuration options, and advanced features, please visit our [official documentation site](https://doggo.mrkaran.dev/docs/).

## Docs
## Sponsorship

Read the [documentation](https://doggo.mrkaran.dev/docs/) for more details.
If you find doggo useful and would like to support its development, please consider becoming a sponsor. Your support helps maintain and improve this open-source project.

## Contributing
[![GitHub Sponsors](https://img.shields.io/github/sponsors/mr-karan?style=for-the-badge&logo=github)](https://github.com/sponsors/mr-karan)

I'm open to accept feature requests and/or issues. I understand `doggo` is a new DNS Client in the town and there might be some edge cases I am not handling.
Please feel free to open issues if you ever come across such a case.
For now I am focussing more on [planned features](TODO.md) for a **stable** v1.0 release _soon_.
Every contribution, no matter how small, is greatly appreciated and helps keep this project alive and growing. Thank you for your support! 🐶❤️

## License

[LICENSE](./LICENSE)
This project is licensed under the [MIT License](./LICENSE).
Binary file modified www/static/doggo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 7ad134e

Please sign in to comment.