Welcome to the SwiftNIO community! Contributions to the SwiftNIO HTTP/3 project are welcomed and encouraged. This project aligns with the Swift community contributing guidelines which is a great first read.
We welcome developers from all backgrounds and experience levels. A diverse and friendly community has more great ideas, more unique perspectives, and produces better software.
- Reporting bugs with clear, reproducible steps as GitHub Issues
- Improving documentation to make the project more accessible
- Adding or enhancing tests to improve reliability and coverage
- Proposing and implementing enhancements
- Participating in the Networking or Server topics on the Swift Forums
See the README for prerequisites and build instructions.
Use GitHub Issues to report bugs, request features, or provide feedback. Please submit an Issue before doing time-consuming or complex work to get acknowledgement from the maintainers.
Specify the following:
- SwiftNIO HTTP/3 version
- Contextual information (e.g. what you were trying to achieve with swift-nio-http3)
- Simplest possible steps to reproduce
- The more complex the steps are, the lower the priority will be.
- A pull request with failing test case is preferred, but it's just fine to paste the test case into the issue description.
- Anything that might be relevant in your opinion, such as:
- Swift version or the output of swift --version
- OS version and the output of uname -a
- Network configuration
SwiftNIO HTTP/3 version: 0.1.0
Context:
While testing my application that uses swift-nio-http3, I noticed that ...
Steps to reproduce:
1. ...
2. ...
3. ...
4. ...
$ swift --version
Swift version 6.3.2 (swift-6.3.2-RELEASE)
Target: aarch64-unknown-linux-gnu
$ uname -a
Linux 924ed8c5-d086-47b8-9898-7195fd50710a 6.18.15-cz-325d33a88139 #1 SMP Mon Apr 20 22:39:49 UTC 2026 aarch64 aarch64 aarch64 GNU/Linux
A good SwiftNIO HTTP/3 pull request is:
- Concise, and contains as few changes as needed to achieve the end result.
- Tested, ensuring that any tests provided failed before the patch and pass after it.
- Documented, adding API documentation as needed to cover new functions and properties.
- Accompanied by a great commit message
Thorough testing is required for all contributions and all checks must pass before merging.
Local Testing: Before submission, ensure all changes pass local tests:
swift test
Automated Tests: New features and bug fixes require corresponding automated tests (unit, integration, end-to-end) that validate the intended behavior and prevent regressions. You are responsible for verifying the correctness and coverage of all tests.
We've adopted the Apple Open Source Code of Conduct. All community members are expected to adhere to these guidelines.
By submitting a pull request, you represent that you have the right to license your contribution to Apple and the community, and agree by submitting the patch that your contributions are licensed under the Apache 2.0 license (see LICENSE.txt).