Skip to content

dnscore: implement DNS-over-QUIC #83

@bassosimone

Description

@bassosimone

Overview This issue is about adding support for DNS-over-QUIC (DoQ) in the dnscore library. The goal is to enable users to perform DNS queries over QUIC using dnscore's transport and high-level APIs. In turn, this feature will be exposed to the rbmk dig tool, allowing users to perform DNS-over-QUIC queries from the command line.

Open to contributors! I currently do not have time myself to work on this issue right now, so, please, let me know if you would like to take on this task. I am willing to provide feedback, guidance, and support to land this new feature.

Proposed Activities I believe we should proceed as follows:

This is the general idea of how I think we should proceed, but obviously we will adapt this plan as we go, if new information and reckonings come up.

Work Style

  • We encourage incremental development through multiple PRs

    • Each task above can be split into smaller, focused PRs
    • Early functionality can be merged while work continues
    • Example progression:
      1. Initial discussion over here sketching out a plan
      2. Basic QUIC connection handling
      3. DNS protocol integration
      4. Structured logging implementation
      5. Test coverage expansion
      6. CLI integration
  • All code changes eventually require:

    • Unit tests following existing patterns (see dotls_test.go, dohttps_test.go)
    • Documentation updates (both code and design docs)
    • Spec updates where relevant
    • Passing CI checks
    • Following Go style guidelines
  • Consider using a draft PRs for early feedback and discussion

    • Share initial design thoughts and research findings
    • Discuss QUIC library selection and integration approach
    • Get feedback on implementation direction
    • Early reviews help avoid major refactoring later
  • If your code is derived work from someone else's code, reference the original source code explicitly

  • Always include a SPDX-License-Identifier (and use GPL-3.0-or-later for new code)

Expected Outcomes I would say:

  1. dnscore includes DoQ support
  2. the DoQ code is fully tested
  3. the dnscoretest includes DoQ support
  4. the internal/cmd/transport/ command includes DoQ support
  5. we have updated all the relevant docs
  6. we have released a new version of dnscore including DoQ
  7. the rbmk dig tool supports DoQ

Prerequisites I think:

Getting Started

  1. Comment on this issue expressing interest
  2. Fork the repository and set up your development environment
  3. Read through the dnscore design doc and the already-existing dnscore protocol implementations
  4. Create a draft PR early to discuss implementation approach
  5. Full development documentation is not available yet, but I will be working on this to facilitate future work

Communications The RBMK and dnscore projects are hobby projects for me, at the moment, so expect some delays in communication. I will try to be as responsive as possible, but please be patient. I am available to discuss on GitHub issues and pull requests, and I am also available via Matrix as @bassosimone:matrix.org.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions