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 applications that support or updating applications to 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 support for IPv6.)

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 applications to run on multiple operating systems are offered by this Cross-Platform IPv6 Socket Programming article, while this IPv6 Guide for Windows Sockets Applications article offers tips on developing applications to run on Microsoft Windows operating systems.

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 updating an application 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 application. The IPv6, Samba, and CIFS article under the Infrastructure section describes the use of one such tool in updating applications to support both IPv4 and IPv6. The IPv6 and PHP article under the Infrastructure section provides additional links on updating PHP to support both IPv4 and IPv6.

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:

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,

and one RFC describes the requirement for IPv6 support in both new and updated hardware and applications:

RFC 6540 IPv6 Support Required for All IPv6-Capable Nodes.