Department of Defense
High Performance Computing Modernization Program

The article Top 10 Tasks for IPv6 Application Developers provides a concise overview of concerns when developing or converting applications that support both Internet Protocol version 4 (IPv4) and IPv6. Section 8 of that article describes IPv6 support in the Run Time Libraries (RTL) of various languages. Since that article was written, version 5.14 of Perl has been released, which has improved support for IPv6. (See this Perl and IPv6 article for details. Also, see this IPv6 and Java Applications article in the Applications section for details about Java.)

The article Designing and Testing IPv6-enabled Networking Software provides a broad overview of concerns when developing applications, while this presentation Application Development for IPv6 considers some more technical aspects. The more recent How Software Engineers Can Make Their Apps IPv6 Ready article and Preparing Apps for IPv6 (presentation and paper) provide details for several of those concerns. This Department of Veterans Affairs IPv6 Applications Testing Best Practices document includes a section with best practices for developing applications, plus another section with best practices for testing them.

This guide provides additional information for application developers. Tips on writing programs to run on multiple operating systems are offered by this Cross-Platform IPv6 Socket Programming article.

The Application Conversion Tools article under the Applications section identifies conversion tools, utility software, and provides links to additional books, articles, and presentations on developing or converting a program written in C/C++, Java, Python, Perl, or PHP from supporting only IPv4 to supporting both IPv4 and IPv6 (dual-stack) and then testing the program. The IPv6, Samba, and CIFS article under the Infrastructure section describes the use of one such tool in converting software to support both IPv4 and IPv6. The IPv6 and PHP article under the Infrastructure section provides additional links on enabling IPv6 support in PHP.

Several Requests for Comments (RFC) published by the Internet Engineering Task Force (IETF) describe the structure and use of sockets in applications that support IPv6, and one that states that IPv6 must be supported by all new software (and hardware):

RFC 3493 Basic Socket Interface Extensions for IPv6
RFC 3542 Advanced Sockets Application Program Interface (API) for IPv6
RFC 4038 Application Aspects of IPv6 Transition
RFC 4584 Extension to Sockets API for Mobile IPv6
RFC 5014 IPv6 Socket API for Source Address Selection
RFC 6540 IPv6 Support Required for All IPv6-Capable Nodes