Subject: [apps-discuss] New proposal for a DNS API

From: Paul Hoffman <[email-masked]>
Date: Mon, 21 Jan 2013 08:08:07 -0800

Greetings again. There are a few DNS application programming interfaces (APIs) available that cover things like DNSSEC and non-address records, but none that have garnered much interest from the application developers who should be their primary audience. To remedy that, I have created a new design for such an API. I did that outside the IETF, of course, given the IETF's general "we don't do APIs" stance.

Please see http://www.vpnc.org/getdns-api/ for the current API proposal and description of the design principles I used to put it together. I am still seeking input from application developers to say what they would really want to see in an API, and from DNS people to say which parts of the DNS should be exposed in what ways to application developers. I based the design on input from an informal gang of application developers, but I'm sure that other application developers have thought "what I really want from the DNS is X and I want to be able to ask in with an API that does Y". At some point in the not-distant-future, I will call the design "finished" and hopefully someone will want to implement it.

Please don't discuss the design on the Application Area mailing list; it is really not appropriate here given that this is not IETF work. I just wanted to alert folks of this work.

--Paul Hoffman

---

From: Nico Williams <[email-masked]>
Date: Tue, 22 Jan 2013 02:40:48 -0600

> Greetings again. There are a few DNS application programming interfaces (APIs) available that cover things like DNSSEC and non-address records, but none that have garnered much interest from the ap…

Please stop spreading that very false truism.

There are several examples of IETF APIs.  For example: SCTP sockets
bindings, GSS-API (including an abstract API as well as C and Java
bindings).

And nowadays, with the spreading propensity to create HTTP-based APIs,
we could easily say that XMPP and *DAV are APIs.

So please, stop it.  All of you who have ever said that the IETF
doesn't do APIs, you're wrong.  You might say that the IETF shouldn't
do APIs, but it won't matter: it has, does and it will continue to
develop standard APIs.

Thank you,

Nico
--

---

From: Phillip Hallam-Baker <[email-masked]>
Date: Tue, 22 Jan 2013 08:14:56 -0500

Doing an API for a protocol like DNS is going to be very hard as DNS is an
inherently asynchronous request protocol. The typical advanced interaction
involves sending out requests in parallel.

While that is pretty straightforward in itself, the patterns for
implementing that type of scheme look very different in different
programming frameworks. The API I would use for .NET is very different from
the API I would use for Java.The differences between the systems are not
that big but they do handle asynchronous patterns very differently.

What we need is an abstract application discovery API, no because we
necessarily expect this to be implemented in code but because we need to
clarify and regularize the interface between the Internet resource
discovery infrastructures and the application layer.

The DNS is only one infrastructure that applications need to take
information from.

On Tue, Jan 22, 2013 at 3:40 AM, Nico Williams <[email-masked]>wrote:

> > Greetings again. There are a few DNS application programming interfaces
> (APIs) available that cover things like DNSSEC and non-address records, but
> none that have garnered much interest from the application developers who
> should be their primary audience. To remedy that, I have created a new
> design for such an API. I did that outside the IETF, of course, given the
> IETF's general "we don't do APIs" stance.
>
> _______________________________________________
> apps-discuss mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/apps-discuss
>

-- 
Website: http://hallambaker.com/

---

From: Paul Hoffman <[email-masked]>
Date: Tue, 22 Jan 2013 07:44:33 -0800

> Please stop spreading that very false truism.

It is not a "false truism". I worded the sentence very carefully. The IETF has a *general* stance that "we don't do APIs". You correctly listed two real APIs, and some other things that can be considered APIs if you squint a bit. However, in the earlier discussions of doing an APIs for DNS, the resounding chorus was "we don't do APIs". The fact that the IETF does a few didn't matter to those saying it.

--Paul Hoffman

---

From: Phillip Hallam-Baker <[email-masked]>
Date: Tue, 22 Jan 2013 10:57:21 -0500

On Tue, Jan 22, 2013 at 10:44 AM, Paul Hoffman <[email-masked]>wrote:

> It is not a "false truism". I worded the sentence very carefully. The IETF
> has a *general* stance that "we don't do APIs". You correctly listed two
> real APIs, and some other things that can be considered APIs if you squint
> a bit. However, in the earlier discussions of doing an APIs for DNS, the
> resounding chorus was "we don't do APIs". The fact that the IETF does a few
> didn't matter to those saying it.

The IETF 'doesn't do schemas' either, except for MIBs.

I think that we need to think about the way that the DNS infrastructure
interfaces with the application layer and the types of information that
should flow between the two. At the moment the interface is in practice
limited to 'gethostbyname' on many platforms which is ridiculous.

One tool that might help here is a piece of code I am working on called
Domainer which is a generator for DNS Resource Record parsers.

At the moment the only language I am targeting is C# but the synthesizer
could generate code in any language, ones that would make best sense are
probably C and HTML.