README 1.7 KB

12345678910111213141516171819202122232425262728293031
  1. This "util" directory is provided for utility header files and
  2. implementations that are internally used in the DNS library
  3. (libdns++).
  4. The functionality provided in these tools is generally available in
  5. other external or perhaps system supplied libraries. The basic
  6. development policy of BIND 10 is to avoid "reinventing wheels" unless
  7. they belong to the exact technology area that BIND 10 targets (e.g.,
  8. DNS). However, libdns++ is a very core part of BIND 10, and is also
  9. intended to be used as a public library, so dependency from libdns++
  10. to external libraries should be minimized. The utilities in this
  11. directory are provided balancing two policies and as a kind of
  12. compromise.
  13. The header files in this directory are therefore not intended to be
  14. installed. Likewise, classes and public functions defined in this
  15. directory are not intended to be used outside libdns++, although we
  16. cannot prohibit it at the language level.
  17. They are not even expected to be used in other modules of BIND 10 than
  18. libdns++ based on the basic policy explained above. Other modules
  19. should only rely on the DNS specific interface that may internally
  20. rely on these utility interfaces, or should use external libraries if
  21. the other module really needs to use the utility feature directly.
  22. There seem to be some violations as of this writing, but we should
  23. eventually fix it. A notable example is the SHA1 interfaces. They
  24. are defined here in the context of NSEC3 processing, but, in fact,
  25. they are not even used from any of the other libdns++ classes or
  26. functions. The SHA1 related interfaces should be moved to the
  27. application that needs it or the application should only access it
  28. through DNS specific interfaces defined in libdns++.