getdns/README.md

63 lines
3.2 KiB
Markdown
Raw Normal View History

2013-10-09 18:52:31 -05:00
getdns API {#mainpage}
==========
2013-06-11 07:37:29 -05:00
See detailed changes below. Basically, moved src/src to src/commit and moved top level configure/build to src. Added support for building into a different directory (for example, mkdir build ; cd build ; ../configure ; make ). modified: README.md renamed: src/src/AUTHORS -> src/AUTHORS renamed: src/src/COPYING -> src/COPYING renamed: src/src/INSTALL -> src/INSTALL new file: src/Makefile renamed: src/src/NEWS -> src/NEWS renamed: src/src/README -> src/README renamed: src/src/.DS_Store -> src/common/.DS_Store renamed: src/src/.deps/example_all_functions.Po -> src/common/.deps/example_all_functions.Po renamed: src/src/.deps/example_simple_answers.Po -> src/common/.deps/example_simple_answers.Po renamed: src/src/.deps/example_synchronous.Po -> src/common/.deps/example_synchronous.Po renamed: src/src/.deps/example_tree.Po -> src/common/.deps/example_tree.Po renamed: src/src/ChangeLog -> src/common/ChangeLog new file: src/common/Makefile new file: src/common/Makefile.in renamed: src/src/Makefile.in -> src/common/Makefile.in~ renamed: src/src/aclocal.m4 -> src/common/aclocal.m4 renamed: src/src/config.h.in -> src/common/config.h.in new file: src/common/config.log renamed: src/src/configure.ac -> src/common/configure.ac renamed: src/src/depcomp -> src/common/depcomp renamed: src/src/example-all-functions.c -> src/common/example-all-functions.c renamed: src/src/example-simple-answers.c -> src/common/example-simple-answers.c renamed: src/src/example-synchronous.c -> src/common/example-synchronous.c renamed: src/src/example-tree.c -> src/common/example-tree.c renamed: src/src/getdns_core_only.c -> src/common/getdns_core_only.c renamed: src/src/getdns_core_only.h -> src/common/getdns_core_only.h renamed: src/src/getdns_libevent.h -> src/common/getdns_libevent.h renamed: src/src/index.html -> src/common/index.html renamed: src/src/install-sh -> src/common/install-sh renamed: src/src/make-examples-linux.sh -> src/common/make-examples-linux.sh renamed: src/src/make-examples-mac.sh -> src/common/make-examples-mac.sh new file: src/configure.ac
2013-06-30 22:36:46 -05:00
* Date: 2013-06-27
* GitHub: <https://github.com/verisign/getdns>
2013-06-11 07:51:35 -05:00
2013-09-11 17:41:23 -05:00
getdns is a [modern asynchronous DNS API](http://www.vpnc.org/getdns-api/) intended to make all types of DNS information easily available as described by Paul Hoffman. This implementation is licensed under the New BSD License (BSD-new).
The [getdns-api mailing list](http://www.vpnc.org/mailman/listinfo/getdns-api) is a good place to engage in discussions regarding the design of the API.
See detailed changes below. Basically, moved src/src to src/commit and moved top level configure/build to src. Added support for building into a different directory (for example, mkdir build ; cd build ; ../configure ; make ). modified: README.md renamed: src/src/AUTHORS -> src/AUTHORS renamed: src/src/COPYING -> src/COPYING renamed: src/src/INSTALL -> src/INSTALL new file: src/Makefile renamed: src/src/NEWS -> src/NEWS renamed: src/src/README -> src/README renamed: src/src/.DS_Store -> src/common/.DS_Store renamed: src/src/.deps/example_all_functions.Po -> src/common/.deps/example_all_functions.Po renamed: src/src/.deps/example_simple_answers.Po -> src/common/.deps/example_simple_answers.Po renamed: src/src/.deps/example_synchronous.Po -> src/common/.deps/example_synchronous.Po renamed: src/src/.deps/example_tree.Po -> src/common/.deps/example_tree.Po renamed: src/src/ChangeLog -> src/common/ChangeLog new file: src/common/Makefile new file: src/common/Makefile.in renamed: src/src/Makefile.in -> src/common/Makefile.in~ renamed: src/src/aclocal.m4 -> src/common/aclocal.m4 renamed: src/src/config.h.in -> src/common/config.h.in new file: src/common/config.log renamed: src/src/configure.ac -> src/common/configure.ac renamed: src/src/depcomp -> src/common/depcomp renamed: src/src/example-all-functions.c -> src/common/example-all-functions.c renamed: src/src/example-simple-answers.c -> src/common/example-simple-answers.c renamed: src/src/example-synchronous.c -> src/common/example-synchronous.c renamed: src/src/example-tree.c -> src/common/example-tree.c renamed: src/src/getdns_core_only.c -> src/common/getdns_core_only.c renamed: src/src/getdns_core_only.h -> src/common/getdns_core_only.h renamed: src/src/getdns_libevent.h -> src/common/getdns_libevent.h renamed: src/src/index.html -> src/common/index.html renamed: src/src/install-sh -> src/common/install-sh renamed: src/src/make-examples-linux.sh -> src/common/make-examples-linux.sh renamed: src/src/make-examples-mac.sh -> src/common/make-examples-mac.sh new file: src/configure.ac
2013-06-30 22:36:46 -05:00
This file captures the goals and direction of the project and the current state of the implementation.
The goals of this implementation of the getdns API are:
* Provide an open source implementation, in C, of the formally described getdns API by Paul Hoffman at <http://www.vpnc.org/getdns-api/>
* Initial support for FreeBSD x.y, MS-Windows Ver. X, OSX 10.x, Linux (CentOS/RHEL R6uX, Ubuntu Ver X) via functional "configure" script
* Initial support to include the Android platform
* Include examples and tests as part of the build
* Document code using doxygen
* Leverage github as much as possible for project coordination
* Coding style/standards follow the BSD coding style <ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/misc/style>
* Follow the git flow branching model described at <http://nvie.com/posts/a-successful-git-branching-model/>
** the master branch is always in a production ready state
** the develop branch contains the latest development changes which are merged from develop into master once they are considered production ready
* Both synchronous and asynchronous entry points with an early focus on the asynchronous model
Non-goals (things we will not be doing) include:
* implementation of the traditional DNS related routines (gethostbyname, etc.)
Contributors
============
* Neel Goyal, Verisign, Inc.
* Allison Mankin, Verisign, Inc.
* Melinda Shore, No Mountain Software LLC
* Glen Wiley, Verisign, Inc.
External Dependencies
=====================
External dependencies are linked outside the getdns API build tree (we rely on configure to find them).
See detailed changes below. Basically, moved src/src to src/commit and moved top level configure/build to src. Added support for building into a different directory (for example, mkdir build ; cd build ; ../configure ; make ). modified: README.md renamed: src/src/AUTHORS -> src/AUTHORS renamed: src/src/COPYING -> src/COPYING renamed: src/src/INSTALL -> src/INSTALL new file: src/Makefile renamed: src/src/NEWS -> src/NEWS renamed: src/src/README -> src/README renamed: src/src/.DS_Store -> src/common/.DS_Store renamed: src/src/.deps/example_all_functions.Po -> src/common/.deps/example_all_functions.Po renamed: src/src/.deps/example_simple_answers.Po -> src/common/.deps/example_simple_answers.Po renamed: src/src/.deps/example_synchronous.Po -> src/common/.deps/example_synchronous.Po renamed: src/src/.deps/example_tree.Po -> src/common/.deps/example_tree.Po renamed: src/src/ChangeLog -> src/common/ChangeLog new file: src/common/Makefile new file: src/common/Makefile.in renamed: src/src/Makefile.in -> src/common/Makefile.in~ renamed: src/src/aclocal.m4 -> src/common/aclocal.m4 renamed: src/src/config.h.in -> src/common/config.h.in new file: src/common/config.log renamed: src/src/configure.ac -> src/common/configure.ac renamed: src/src/depcomp -> src/common/depcomp renamed: src/src/example-all-functions.c -> src/common/example-all-functions.c renamed: src/src/example-simple-answers.c -> src/common/example-simple-answers.c renamed: src/src/example-synchronous.c -> src/common/example-synchronous.c renamed: src/src/example-tree.c -> src/common/example-tree.c renamed: src/src/getdns_core_only.c -> src/common/getdns_core_only.c renamed: src/src/getdns_core_only.h -> src/common/getdns_core_only.h renamed: src/src/getdns_libevent.h -> src/common/getdns_libevent.h renamed: src/src/index.html -> src/common/index.html renamed: src/src/install-sh -> src/common/install-sh renamed: src/src/make-examples-linux.sh -> src/common/make-examples-linux.sh renamed: src/src/make-examples-mac.sh -> src/common/make-examples-mac.sh new file: src/configure.ac
2013-06-30 22:36:46 -05:00
The project relies on [libldns from NL](https://www.nlnetlabs.nl/projects/ldns/) for parsing and constructing DNS packets. Version 1.6.16 (note that building ldns may require openssl headers and libraries)
Although [libevent](http://libevent.org) is used initially to implement the asynchronous model, future work may include a move to other mechanisms (epoll based etc.). Version 2.0.21 stable
Doxygen is used to generate documentation, while this is not technically necessary for the build it makes things a lot more pleasant.
GNU autoconf is used to generate the configure script (and consequently the Makefiles)
2013-08-30 13:19:03 -05:00
Automake 1.12 is required if you are building the distribution tarball.
Current State of the Implementation
===================================
We are currently in the early stages of building the API so the code should be considered incomplete. The current target platforms and the personal primarily responsible for ensuring it builds and runs on that platform include:
* Android, Neel Goyal
* FreeBSD, Melinda Shore
* Linux RHEL/CentOS 6.x, Glen Wiley
* MS-Windows 8, Neel Goyal
* OSX 10.8, Glen Wiley
--
end README