wiki:GettingStartedBIND10Development

Getting Started with BIND 10 Development

This document quickly introduces the basic steps in programming for BIND 10. BIND 10 is primarily written in Python 3.1 with some code in C++ (for performance).

The development source code is available via Git, for example:

git clone git://git.bind10.isc.org/bind10

(For more details, see GitGuidelines.)

It uses the autoconf/automake/libtool framework:

  cd bind10
  autoreconf --install

The BIND 10 C++ development requires Boost headers. The ./configure switch can be used to point to them, such as:

  ./configure --with-boost-include=/opt/boost

BIND 10 is a suite of modular components -- different processes performing different tasks. The two primary processes for getting started with BIND 10 development are: b10-msgq and b10-cfgmgr. The b10-msgq daemon provides a message bus for BIND 10 components to communicate. The b10-cfgmgr daemon is used to read and store configurations used by the various BIND 10 programs.

Developers should pass additional arguments to configure such as:

  • --enable-debug: Enables some optional debug checks that slow down code, but check harder for correctness
  • --enable-logger-checks: During logging calls, checks logging format strings for extra placeholders that have not been substituted, etc.
  • --enable-experimental-resolver: Build the prototype DNS resolver (experimental) that is very basic
  ./configure --with-boost-include=/opt/boost --enable-debug --enable-logger-checks --enable-experimental-resolver

The core python modules are located in the source tree at src/lib/python/isc and installed to $(prefix)/lib/python3.1/site-packages/isc/.

BIND 10 coding uses test-driven development.

TODO: show example and explain how to subscribe, read message, send message, etc.

import isc
from isc.config.ccsession import *

Other References

Last modified 4 years ago Last modified on Jan 28, 2014, 12:26:55 PM