[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5612":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":29,"readmeContent":30,"aiSummary":31,"trendingCount":16,"starSnapshotCount":16,"syncStatus":19,"lastSyncTime":32,"discoverSource":33},5612,"dog","ogham\u002Fdog","ogham","A command-line DNS client.","https:\u002F\u002Fdns.lookup.dog\u002F",null,"Rust",6663,210,37,67,0,4,20,2,37.97,"European Union Public License 1.2",false,"master",[25,26,27,28],"client","command-line","dns","rust","2026-06-12 02:01:12","\u003Cdiv align=\"center\">\n\u003Ch1>dog\u003C\u002Fh1>\n\n[dog](https:\u002F\u002Fdns.lookup.dog\u002F) is a command-line DNS client.\n\n\u003Ca href=\"https:\u002F\u002Ftravis-ci.org\u002Fgithub\u002Fogham\u002Fdog\">\n    \u003Cimg src=\"https:\u002F\u002Ftravis-ci.org\u002Fogham\u002Fdog.svg?branch=master\" alt=\"Build status\" \u002F>\n\u003C\u002Fa>\n\n\u003Ca href=\"https:\u002F\u002Fsaythanks.io\u002Fto\u002Fogham%40bsago.me\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSay%20Thanks-!-1EAEDB.svg\" alt=\"Say thanks!\" \u002F>\n\u003C\u002Fa>\n\u003C\u002Fdiv>\n\n![A screenshot of dog making a DNS request](dog-screenshot.png)\n\n---\n\nDogs _can_ look up!\n\n**dog** is a command-line DNS client, like `dig`.\nIt has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.\n\n## Examples\n\n    dog example.net                          Query a domain using default settings\n    dog example.net MX                       ...looking up MX records instead\n    dog example.net MX @1.1.1.1              ...using a specific nameserver instead\n    dog example.net MX @1.1.1.1 -T           ...using TCP rather than UDP\n    dog -q example.net -t MX -n 1.1.1.1 -T   As above, but using explicit arguments\n\n---\n\n## Command-line options\n\n### Query options\n\n    \u003Carguments>              Human-readable host names, nameservers, types, or classes\n    -q, --query=HOST         Host name or domain name to query\n    -t, --type=TYPE          Type of the DNS record being queried (A, MX, NS...)\n    -n, --nameserver=ADDR    Address of the nameserver to send packets to\n    --class=CLASS            Network class of the DNS record being queried (IN, CH, HS)\n\n### Sending options\n\n    --edns=SETTING           Whether to OPT in to EDNS (disable, hide, show)\n    --txid=NUMBER            Set the transaction ID to a specific value\n    -Z=TWEAKS                Set uncommon protocol-level tweaks\n\n### Protocol options\n\n    -U, --udp                Use the DNS protocol over UDP\n    -T, --tcp                Use the DNS protocol over TCP\n    -S, --tls                Use the DNS-over-TLS protocol\n    -H, --https              Use the DNS-over-HTTPS protocol\n\n### Output options\n\n    -1, --short              Short mode: display nothing but the first result\n    -J, --json               Display the output as JSON\n    --color, --colour=WHEN   When to colourise the output (always, automatic, never)\n    --seconds                Do not format durations, display them as seconds\n    --time                   Print how long the response took to arrive\n\n\n---\n\n## Installation\n\nTo install dog, you can download a pre-compiled binary, or you can compile it from source. You _may_ be able to install dog using your OS’s package manager, depending on your platform.\n\n\n### Packages\n\n- For Arch Linux, install the [`dog`](https:\u002F\u002Fwww.archlinux.org\u002Fpackages\u002Fcommunity\u002Fx86_64\u002Fdog\u002F) package.\n- For Homebrew on macOS, install the [`dog`](https:\u002F\u002Fformulae.brew.sh\u002Fformula\u002Fdog) formula.\n- For NixOS, install the [`dogdns`](https:\u002F\u002Fsearch.nixos.org\u002Fpackages?channel=unstable&show=dogdns&query=dogdns) package.\n\n\n### Downloads\n\nBinary downloads of dog are available from [the releases section on GitHub](https:\u002F\u002Fgithub.com\u002Fogham\u002Fdog\u002Freleases\u002F) for 64-bit Windows, macOS, and Linux targets. They contain the compiled executable, the manual page, and shell completions.\n\n\n### Compilation\n\ndog is written in [Rust](https:\u002F\u002Fwww.rust-lang.org).\nYou will need rustc version [1.45.0](https:\u002F\u002Fblog.rust-lang.org\u002F2020\u002F07\u002F16\u002FRust-1.45.0.html) or higher.\nThe recommended way to install Rust for development is from the [official download page](https:\u002F\u002Fwww.rust-lang.org\u002Ftools\u002Finstall), using rustup.\n\nTo build, download the source code and run:\n\n    $ cargo build\n    $ cargo test\n\n- The [just](https:\u002F\u002Fgithub.com\u002Fcasey\u002Fjust) command runner can be used to run some helpful development commands, in a manner similar to `make`.\nRun `just --list` to get an overview of what’s available.\n\n- 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.\nCopy the resulting binary, which will be in the `target\u002Frelease` directory, into a folder in your `$PATH`.\n`\u002Fusr\u002Flocal\u002Fbin` is usually a good choice.\n\n- To compile and install the manual pages, you will need [pandoc](https:\u002F\u002Fpandoc.org\u002F).\nThe `just man` command will compile the Markdown into manual pages, which it will place in the `target\u002Fman` directory.\nTo use them, copy them into a directory that `man` will read.\n`\u002Fusr\u002Flocal\u002Fshare\u002Fman` is usually a good choice.\n\n\n### Container image\n\nTo build the container image of dog, you can use Docker or Kaniko. Here an example using Docker:\n\n    $ docker build -t dog .\n\nYou can then run it using the following command:\n\n    $ docker run -it --rm dog\n\nTo run dog directly, you can then define the following alias:\n\n    $ alias dog=\"docker run -it --rm dog\"\n\n\n### End-to-end testing\n\ndog has an integration test suite written as [Specsheet](https:\u002F\u002Fspecsheet.software\u002F) check documents.\nIf you have a copy installed, you can run:\n\n    $ just xtests\n\nSpecsheet will test the compiled binary by making DNS requests over the network, checking that dog returns the correct results and does not crash.\nNote that this will expose your IP address.\nFor more information, read [the xtests README](xtests\u002FREADME.md).\n\n\n### Feature toggles\n\ndog has three Cargo features that can be switched off to remove functionality.\nWhile doing so makes dog less useful, it results in a smaller binary that takes less time to build.\n\nThere are three feature toggles available, all of which are active by default:\n\n- `with_idna`, which enables [IDNA](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternationalized_domain_name) processing\n- `with_tls`, which enables DNS-over-TLS\n- `with_https`, which enables DNS-over-HTTPS (requires `with_tls`)\n\nUse `cargo` to build a binary that uses feature toggles. For example, to disable TLS and HTTPS support but keep IDNA support enabled, you can run:\n\n    $ cargo build --no-default-features --features=with_idna\n\nThe list of features that have been disabled can be checked at runtime as part of the `--version` string.\n\n\n---\n\n## Documentation\n\nFor documentation on how to use dog, see the website: \u003Chttps:\u002F\u002Fdns.lookup.dog\u002F>\n\n\n## See also\n\n`mutt`, `tail`, `sleep`, `roff`\n\n\n## Licence\n\ndog’s source code is licenced under the [European Union Public Licence](https:\u002F\u002Fchoosealicense.com\u002Flicenses\u002Feupl-1.2\u002F).\n","dog 是一个命令行 DNS 客户端，类似于 dig。它支持彩色输出、标准命令行参数语法，并且能够使用 DNS-over-TLS 和 DNS-over-HTTPS 协议进行查询，同时还可以生成 JSON 格式的输出。该工具适用于需要从命令行界面执行 DNS 查询的场景，如网络调试、系统管理等，尤其适合对安全性有较高要求的环境。通过丰富的命令选项，用户可以灵活地指定查询类型、使用的协议以及输出格式，从而满足不同需求。","2026-06-11 03:04:21","top_language"]