The article Top 10 Tasks for IPv6 Application Developers provides a concise overview of concerns when developing new applications that will support or enabling existing applications to support both a network infrastructure where only Internet Protocol version 4 (IPv4) is present and a network infrastructure where IPv4 and IPv6 are both present (dual-stack). Section 8 of that article describes IPv6 support in the Run Time Libraries (RTL) of various languages. That article was written over 10 years ago.
Since 2020, applications being developed no longer need to support dual-stack network infrastructures, The Internet Engineering Task Force (IETF) issued Request for Comments (RFC) 8925 IPv6-Only Preferred Option for DHCPv4, which enables IPv4-only and dual-stack nodes on a local-area network to continue to be supported while all new and updated nodes on the network will be IPv6-only (sometimes referred to as IPv6-mostly access), making The Need for IPv6-only Product Support even more important.
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. In contrast to IPv4, applications that generate IPv6 packets larger than the default path Maximum Transmission Unit (MTU) configured for the local network must use raw sockets rather than the sockets supported by the RTL of various languages, as described in this article.
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 enabling an application written in C/C++, Java, Python, Perl, or PHP to support both dual-stack and IPv6-only networking infrastructures and then testing the application. The IPv6, Samba, and CIFS article under the Infrastructure section describes the use of one such tool in enabling applications to support both IPv4 and IPv6. The IPv6 and PHP article under the Infrastructure section provides additional references for enabling PHP to support both IPv4 and IPv6.
Several RFCs published by the 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 this RFC describes the requirement for IPv6 support in both new and existing hardware and applications:
RFC 6540 IPv6 Support Required for All IPv6-Capable Nodes.