# NDNS: Domain Name Service for Named Data Networking

[![CI](https://github.com/named-data/ndns/actions/workflows/ci.yml/badge.svg)](https://github.com/named-data/ndns/actions/workflows/ci.yml)
[![Docs](https://github.com/named-data/ndns/actions/workflows/docs.yml/badge.svg)](https://github.com/named-data/ndns/actions/workflows/docs.yml)
![Language](https://img.shields.io/badge/C%2B%2B-17-blue)

**NDNS** is a completely distributed database system that largely mimics the structure of
the DNS system in today's Internet but operates within the NDN architecture. Although the
design of NDNS was primarily driven by the desire to provide support for cryptographic key
distribution and routing scalability management, we believe that NDNS can also serve a
number of other purposes during the development and deployment of the NDN architecture in
coming years.

## Installation

See [`docs/INSTALL.rst`](docs/INSTALL.rst) for build instructions.

## Reporting bugs

Please submit any bug reports or feature requests to the
[NDNS issue tracker](https://redmine.named-data.net/projects/ndns/issues).

## Contributing

We greatly appreciate contributions to the NDNS code base, provided that they are
licensed under the GNU GPL version 3 or a compatible license.
If you are new to the NDN software community, please read our [Contributor's Guide](
https://github.com/named-data/.github/blob/main/CONTRIBUTING.md) to get started.

## License

NDNS is free software distributed under the GNU General Public License version 3.
See [`COPYING.md`](COPYING.md) for details.
